【问题标题】:Generics - get Class<T[]> from Class<T> [duplicate]泛型 - 从 Class<T> 获取 Class<T[]> [重复]
【发布时间】:2016-03-31 21:48:54
【问题描述】:
public class GenericClass<T> {

    private final Class<T> clazz;

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

}

public Test extends GenericClass<Person.class> {

    public Test() {
        super(Person.class);
    }

}

在 Generic 类中,我将传递 clazz(在本例中为 Person.class)作为其中一个方法的参数,但现在我想将 clazz[](在本例中为 Person[].class)传递给Generic 类中的另一个方法。我怎么做?我怎样才能从 clazz 获得 clazz[],即从 Person.class 获得 Person[].class

【问题讨论】:

    标签: java generics


    【解决方案1】:

    我能找到的最佳答案是

     Array.newInstance(myClass, 0).getClass()
    

    【讨论】:

    • 我在 Generic 类中调用 rest 模板,并希望在方法中传递 Class 类型。例如 restTemplate.exchange(url, HttpMethod.GET, requestEntity, this.clazz, params);和 restTemplate.exchange(url, HttpMethod.GET, requestEntity, this.clazz[], params);有什么方法可以在方法中传递类的通用数组(在这种情况下是 Person[].class)我无法弄清楚 Array.newInstance(myClass, 0).getClass() 的工作原理
    • @Shiva 这个答案会让你得到Person[].class,如果你把它放进去的话。
    • 知道了。它现在可以工作了,我必须将它转换为 Class arrayClass = (Class) Array.newInstance(this.clazz, 0).getClass();谢谢@Louis
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2015-06-14
    相关资源
    最近更新 更多