若有m是泛型方法, 永远不能这样吗: <String>m(), 即前后什么都没有.写个例子吧.
Java code
class test {
<T> void m(){}; //泛型方法 void test() {
<String>m(); //像这样, 编译错误. test t = new test();
t.<String>m(); //这样就可以.
}
}
Java code
class test {
<T> void m(){}; //泛型方法 void test() {
<String>m(); //像这样, 编译错误. test t = new test();
t.<String>m(); //这样就可以.
}
}
this.<String>m();
}
public class Test
{
public static void main(String []args)
{
List<Test> t = new ArrayList<Test>(); //泛型处理类
for(Test t: t)
{
System.out.println(t);//类型自动转换
}
//非泛型处理 需要强制转换
List t = new ArrayList();
for(int i=0; i<t.size(); i++)
{
Test t = (Test)l.get(i); //类型不安全转换
}
}
}2、其二泛形可以让类更灵活。创造模板化编程。泛形方法,泛形类 形成编译期错误提示static<T> void test(T t) //编译时织入类型,编译期验证类型关于你上面的那个方法。为什么不能<String>m();那是因为在调用泛型类的时,因为你是在当前类中的方法里调用,必须要依赖与当前类实例。泛型在推断的时候要先有实例。相当于选创建这个模板。然后你放入参数时。进行“类型参数推断”来找到你织入的参数。