2016-03-31 22 views
0
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); 
    } 

} 

からクラス を取得し、私は方法の一つで引数として(この場合はPerson.classで)clazzを渡すことになるが、今はclazzを渡したいです[] (この場合はPerson []。class)をGenericクラス内の別のメソッドに追加します。それ、どうやったら出来るの?どのように私はclazz [] clazzすなわち、人[]。クラスからPerson.class ジェネリック - ジェネリッククラスでクラス<T>

答えて

1

から取得することができ、私が今までに見つけることができました最良の答えは、私は一般的に、残りのテンプレートを呼び出しています

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

ですクラスの型をメソッドに渡したいとします。たとえば、 restTemplate.exchange(url、HttpMethod.GET、requestEntity、this.clazz、params); および restTemplate.exchange(url、HttpMethod.GET、requestEntity、this.clazz []、params); メソッドのクラスの汎用配列(この場合Person []。クラス)を渡す方法はありません Array.newInstance(myClass、0).getClass()のしくみを理解できませんでした – Shiva

+0

@ Shivaあなたがそれを入れたら、この答えはあなたに 'Person []。class'を与えます。 –

+0

がそれを手に入れました。今度はキャストする必要がありました。 クラス arrayClass =(クラス)Array.newInstance(this.clazz、0).getClass(); ありがとう@ルイス – Shiva

関連する問題