获取通用类型参数的包名称

时间:2010-07-08 08:16:39

标签: java generics jaxb

如何获取泛型类型参数的包名(通常是类)?我有一个类似的类:

public class MyClass<T> {}

我想做的是这样的事情(非工作伪Java):

return T.class.getPackage().getName();

我需要这个,因为JAXB需要它作为上下文路径(JAXBContext.newInstance(String)方法)。当然,我对使用JAXBContext更优雅的方式持开放态度。 :)

干杯 的Matthias

1 个答案:

答案 0 :(得分:4)

这是一种可能的解决方案(如果您可以更改MyClass):

public class MyClass<T> {

   private Class<T> clazz;
   public MyClass (Class<T> clazz) {
     this.clazz = clazz;
   }

   public String getPackageNameOfGenericClass() {
     return clazz.getPackage().getName(); 
   }

}