如何获取泛型类型参数的包名(通常是类)?我有一个类似的类:
public class MyClass<T> {}
我想做的是这样的事情(非工作伪Java):
return T.class.getPackage().getName();
我需要这个,因为JAXB需要它作为上下文路径(JAXBContext.newInstance(String)
方法)。当然,我对使用JAXBContext
更优雅的方式持开放态度。 :)
干杯 的Matthias
答案 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();
}
}