public static <T,M> Generic01<M> hello(M age){
return new Generic01<M>(age);
}
应该说钱前面的<T,M>是对这个static method是generic的一种声明,而且这个声明在语法上市必须的。
其他的事情就是顺理成章了。 <T,M>中多出来的T就是本static method中使用的泛型。
由于Java的泛型类的实现方式是擦拭法,对于一个类,如果是泛型类的话,那么是因为泛型类的泛型的具体数据类型,是在造对象的时候确定的。所以,static method就不能使用泛型类中的泛型,因为使用static method时候,对象还没有确定,类的泛型还没有确定。所以,static method中的泛型,跟类中的泛型没有关系。
正解
Sign in to make a reply
young
public static <T,M> Generic01<M> hello(M age){
return new Generic01<M>(age);
}
应该说钱前面的<T,M>是对这个static method是generic的一种声明,而且这个声明在语法上市必须的。
其他的事情就是顺理成章了。 <T,M>中多出来的T就是本static method中使用的泛型。