我正在练习仿制药,我做了以下事情。
创建了一个名为 man 的类,如下所示。
public class Man{
int hands=2;
int legs=2;
boolean alive;
public Man(boolean b) {
// TODO Auto-generated constructor stub
alive=b;
}
}
创建了一个名为 person 的类
public class Person<Man> {
Man p;
String name;
public Person(Man p, String name) {
this.p = p;
this.name = name;
}
public Person() {
// TODO Auto-generated constructor stub
}
}
试图实例化一个字符串或 int 类型的人,如下所示,它不会引发错误。
Person<String> p1 = new Person<String>(new String("test"), "test1");
Person<Integer> p2=new Person<>(1,"test");
当我仔细检查时,我收到以下警告。“类型参数 Man 隐藏了类型 Man”
所以我知道将 Man 作为类 Person 的类型参数与在 java 示例中给出“E”一样好。它不是 Man.class。为什么会这样?如何将我的 Man.class 分配为泛型类型参数?
你能给我一些很好的问题/练习来学习泛型吗?