黑马程序员技术交流社区

标题: 怎样从一个接口的实现类的对象中获取它所实现的接口类... [打印本页]

作者: 黑马高明辉    时间: 2012-7-14 17:08
标题: 怎样从一个接口的实现类的对象中获取它所实现的接口类...
就类似于这样:
ArrayList array = new ArrayList();
System.out.println(array.getClass().getInterfaces().getClass().getName());
//结果是:[Ljava.lang.Class;
而我想得到的是collection的接口的class。
---------
我查了一下,getInterfaces()方法返回的是此对象所表示的类或接口实现的接口,是个数组,那么我该怎么来获取其中的哦collection接口的字节码?

作者: 张_涛    时间: 2012-7-14 17:21
  1. public static void main(String[] args) throws IOException
  2.         {
  3.                 ArrayList array = new ArrayList();
  4.                
  5.                 /**
  6.                  * 注意一下几点:
  7.                  * 1.由于一个类可以实现多个接口,因此getInterfaces()返回的是一个Class[]数组
  8.                  * 2.接口是一种特殊的类,因此在getInterfaces()后不需要再调用getClass()方法了。
  9.                  */

  10.                 Class[] clazz = array.getClass().getInterfaces();
  11.                 for(int i = 0; i < clazz.length; i++) {
  12.                         System.out.println(clazz[i].getName());
  13.                 }
  14.         }
复制代码
运行结果如下:
java.util.List
java.util.RandomAccess
java.lang.Cloneable
java.io.Serializable
作者: 黑马高明辉    时间: 2012-7-14 17:23
张_涛 发表于 2012-7-14 17:21
运行结果如下:
java.util.List
java.util.RandomAccess

.由于一个类可以实现多个接口,因此getInterfaces()返回的是一个Class[]数组。这句话很关键,多谢!
作者: 张_涛    时间: 2012-7-14 17:26
黑马高明辉 发表于 2012-7-14 17:23
.由于一个类可以实现多个接口,因此getInterfaces()返回的是一个Class[]数组。这句话很关键,多谢! ...

没事,如果看到这种情况,可以查阅文档,我照着上面敲的。
作者: 丁朋    时间: 2012-7-14 18:34
一个类可以实现多个接口




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2