2012-03-20 10 views
0

ジェネリックな(パラメータ化された)メソッドをリフレクションを通して非ジェネリッククラスから取得することは可能ですか?私はジェネリックを実行する場合Javaリフレクション - 非ジェネリッククラスのジェネリックメソッドを取得

public interface GenericInterface<T> { 
    public T publicMethod(T arg); 
} 

public class NonGenericClassWithGenericMethods { 
    private <T> void privateMethod(GenericInterface<T> arg) { 

    } 
} 

public class Generics { 
    public static void main(String[] args) { 
     try { 
      NonGenericClassWithGenericMethods.class.getMethod("privateMethod", GenericInterface.class).setAccessible(true); 
     } 
     catch(Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

は、私が手:: は、ここで私が何をしたいのサンプルです

java.lang.NoSuchMethodException: NonGenericClassWithGenericMethods.privateMethod(GenericInterface)

ありがとうございました

答えて

7

.getDeclaredMethod()の代わりに使用してくださいは、公開されたものだけを返します。

+0

ありがとうございました!私はあまりにも視認性の問題だったことに気づいて、タイプ消去に集中していました:) – lencinhaus

関連する問題