¿Es posible escribir un solo método que acepte un parámetro genérico de abstracción variable?

Como seguimiento a esta pregunta , ¿es posible escribir un método único que agregue un Dog a una habitación adecuada? (En este ejemplo, aceptaría una sala de Animal o una sala de Dog ). ¿O me veo obligado a escribir dos métodos distintos como se muestra a continuación? (Ni siquiera puedo confiar en la sobrecarga debido al borrado de tipo).

 public class Rooms { interface Animal {} class Dog implements Animal {} class Room { void add(T t) {} } void addDogToAnimalRoom(Room room) { room.add(new Dog()); } void addDogToDogRoom(Room room) { room.add(new Dog()); } } 

Está utilizando Room como consumidor, ya que acepta el nuevo Dog , por lo que se aplica el famoso acrónimo PECS de Josh Bloch.

 void addDogToDogRoom(Room room) { room.add(new Dog()); }