1 -
sim, pra que um mapa genérico receba duas classes diferentes a solução é essa; estes tais objetos vão precisar sim de uma interface ou ancestral comum, afinal, se vc pensar bem, por que eles estariam juntos se não tivessem alguma semelhança?
Por acaso a única semelhança entre ObjA e o ObjB é um atributo denominado ipAddress. Daí a minha vontande de considerar ObjA e ObjB objectos sem extensão a uma classe comum.
Mas não é possível ter um mapa que aceite vários tipos de objectos distintos? É claro que terei atenção no código para não haver ClassCastException.
Por exemplo:
public class ClasseA(){...}
public class ClasseB(){...}
Map<String, aceita ClasseA e ClasseB> meuMap = new HashMap<String, aceita ClasseA e ClasseB>()
....
public void addElement(String key, aceita objectos da ClasseA e ClasseB - obj)
{
meuMap.put(key, obj)
}
2 - Se usar o seguinte na ClasseA e ClasseB não vai permitir realizar o que quero na pergunta 1?:
public class ClasseA()<Elemento>{...}
public class ClasseB()<Elemento>{...}
3 - Qual é o objectivo de se ter classes da seguinte forma:
public class ClasseA()<Elemento>{...}
4 - Alguém pode-me explicar como funcionam os métodos genéricos?
5 - Muitas vezes na api do J2SE encontramos classes da seguinte forma:
Que eu saiba, E, K e V não são nenhuns tipos. Porque razão usa-se este tipo de letras? Será que o uso dessas letras querem dizer outra coisa? Podem-me explicar?
Obrigado,
Pedro