如何从类型中获取Class

时间:2012-12-02 20:28:20

标签: java

  

可能重复:
  How to determine the class of a generic type?

考虑到这样的代码:

   MyClass<SomeOtherClass> = new MyClass<SomeOtherClass>();

    public class MyClass<T> implements IMyClass<T> 
    {
       public MyClass()
       {
          //I need to get class of SomeOtherClass
       }
    }

是否有可能在Java中做这样的事情?

更新以获得更清晰

1 个答案:

答案 0 :(得分:1)

Java通用实现不允许您了解给定实例的泛型类型参数。这是由于type erasure

太糟糕了,您无法在评论位置获取SomeOtherClass.class

请注意,类型擦除不会阻止获取声明的泛型参数。例如,以下实例将能够获得两个Function接口通用参数:

class ToStringFunction implement Function<Object,String> {
...
}   

在您的情况下,信息可用于字段声明,该声明在您的类实例中不可用。