代码之家  ›  专栏  ›  技术社区  ›  Matthias Meid

获取泛型类型参数的包名称

  •  1
  • Matthias Meid  · 技术社区  · 14 年前

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

    public class MyClass<T> {}
    

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

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

    干杯

    1 回复  |  直到 14 年前
        1
  •  4
  •   Andreas Dolk    14 年前

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

    public class MyClass<T> {
    
       private Class<T> clazz;
       public MyClass (Class<T> clazz) {
         this.clazz = clazz;
       }
    
       public String getPackageNameOfGenericClass() {
         return clazz.getPackage().getName(); 
       }
    
    }