一个接口
interface INF {}一个类实现了这个接口
public class QWE implements INF{}new一个类出来  QWE qwe = new QWE();这时调用 qwe.getClass().getName();可以得到类的名称  "QWE" 。但当引用类型为接口时  INF inf = new QWE();如何得到这个接口的名称 "INF" 呢?初学者,望不吝赐教。

解决方案 »

  1.   

     QWE qwe = new QWE(); 
    INF inf = new QWE();
    两句的区别是下面这句是父类引用指向子类对象
    调用方法是一样的INF.class.getName();
      

  2.   

    试试Type[] ts = inf.getClass().getGenericInterfaces();
    for (Type t : ts)
    {
    System.out.println(t.getClass());
    }
      

  3.   

    谢谢楼上各位的回复,我还是有点不懂。
    各位的回复都是INF.class.getName();
    这个是直接从INF接口中找这个getName()方法,
    QWE qwe = new QWE(); 
    qwe.getClass().getName();
    这个是通过对象qwe来得到它自身是什么类,
    而INF inf = new QWE(); 我的意思是如何通过对象inf来得到它自身代表了什么借口呢?
      

  4.   

    inf 指向的对象还是QWE这个类
      

  5.   

    所以通过inf是取不到接口的,因为QWE可以实现多个接口
      

  6.   


    运行结果为  “class java.lang.Class”
      

  7.   

    想做同instanceof一样 的功能吗?