通用型我有一个看起来像如何提取从ARG
public void (Foo<T> foo)
在这种方法中,我需要调用了
Class<T> clazz
作为参数的方法的方法签名。我如何从foo获得类型为Class<T>
的参考?谢谢
通用型我有一个看起来像如何提取从ARG
public void (Foo<T> foo)
在这种方法中,我需要调用了
Class<T> clazz
作为参数的方法的方法签名。我如何从foo获得类型为Class<T>
的参考?谢谢
由于类型擦除,你不能直接获取类型参数。这些信息在运行时根本不存在。 API需要参考类型参数的类需要采取类的对象实例...
公共无效ABC(美孚< T> FOO,<类T> clazz所)
你确定你的方法签名是正确的?
我认为,如果没有T类你不能让的说法看起来像
public void method(Class<T> obj){
}
类型参数必须存在,所以你已经知道的传入的类型。
当你把它变成这样:
public <T> void method(T u){
System.out.println("U: " + u.getClass().getName());
}
你应该能够得到的类名或刚下课参考,不?
文档:
http://download.oracle.com/javase/tutorial/java/generics/genmethods.html
是的,我无意中省略
让我知道是否有帮助:) GL;) – 2011-01-05 13:46:50
Java 7的是应该将具体化泛型类型与您将能够解决这个问题 – LINEMAN78 2011-01-05 01:56:32