2013-01-31 7 views
6

例からインターフェイス名を取得したい:私はlist参照変数からのインターフェイス名を取得したい私は、実装クラス

List<String> list = new ArrayList<String>(); 
//This would give me the class name for the list reference variable. 
list.getClass().getSimpleName(); 

。 これを行う方法はありますか?

答えて

9

Reflectionを使用すると、クラスが実装するArray of Interfacesを返すClass.getInterfaces()メソッドを呼び出すことができます。

System.out.println(list.getClass().getInterfaces()[0]); 

名前だけ

System.out.println(list.getClass().getInterfaces()[0].getSimpleName); 
+2

またこれらのインタフェースによって拡張されたインタフェースに再帰することができますを取得すること。 – Guillaume

+0

@Guillaume良い点は、クラスを実装するクラスになります。たとえば、interface [0]はjava.util.List、interface [1]はjava.util.RandomAccessになります。 – PermGenError

+0

Collectionインターフェイスを取得する場合は、最初の呼び出しで返されたインターフェイスのgetInterface()を呼び出します。 – Guillaume

2
Class aClass = ... //obtain Class object. 
Class[] interfaces = aClass.getInterfaces(); 
関連する問題