博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java反射之getInterfaces()方法
阅读量:6343 次
发布时间:2019-06-22

本文共 2156 字,大约阅读时间需要 7 分钟。

今天学习Spring3框架,在理解模拟实现Spring Ioc容器的时候遇到了getInterfaces()方法。getInterfaces()方法和Java的反射机制有关。它能够获得这个对象所实现的接口。

例如:

Class<?> string01 = person.getClass().getInterfaces()[0];

//获得person对象所实现的第一个接口

详细的例子如下:

Person类:

[java]
  1. package com.deciphering.spring;  
  2.   
  3. public class Person implements eagle,whale{  
  4.     private String name = "小明";  
  5.     private int id = 10001;   
  6.     public void Speak(String name){  
  7.         System.out.println("我的名字"+name+" ""编号"+ id);  
  8.     }     
  9.     @Override  
  10.     public void fly() {  
  11.         System.out.println("I can Fly!!!");       
  12.     }  
  13.       
  14.     @Override  
  15.     public void swim() {          
  16.         System.out.println("I can swimming!!!");  
  17.     }  
  18.     public static void main(String args[]){  
  19.         Person person = new Person();  
  20.         person.Speak("小明");  
  21.         person.fly();  
  22.         person.swim();  
  23.         System.out.println("---------------");  
  24.         Class<?> string01 = person.getClass().getInterfaces()[0];  
  25.         Class<Person> string02 = (Class<Person>) person.getClass().getInterfaces()[1];  
  26.         System.out.println(string01);  
  27.         System.out.println(string02);         
  28.     }  
  29. }  
package com.deciphering.spring;public class Person implements eagle,whale{    private String name = "小明";    private int id = 10001;     public void Speak(String name){        System.out.println("我的名字"+name+" "+ "编号"+ id);    }       @Override    public void fly() {        System.out.println("I can Fly!!!");         }        @Override    public void swim() {                System.out.println("I can swimming!!!");    }    public static void main(String args[]){        Person person = new Person();        person.Speak("小明");        person.fly();        person.swim();        System.out.println("---------------");        Class
string01 = person.getClass().getInterfaces()[0]; Class
string02 = (Class
) person.getClass().getInterfaces()[1]; System.out.println(string01); System.out.println(string02); }}
eagle接口:

[java]
  1. package com.deciphering.spring;  
  2.   
  3. public interface eagle {  
  4.     public void fly();  
  5. }  
package com.deciphering.spring;public interface eagle {    public void fly();}
whale接口:

[java]
  1. package com.deciphering.spring;  
  2.   
  3. public interface whale {  
  4.     public void swim();  
  5. }  
package com.deciphering.spring;public interface whale {    public void swim();}
运行结果:

你可能感兴趣的文章
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
java的一些基础知识
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
获取JAVA对象占用的内存大小
查看>>
python-----环境变量
查看>>
如何让 UITableViewCell 中的 imageView 大小固定
查看>>
python__基础 : 多继承中方法的调用顺序 __mro__方法
查看>>
leetcode 165. Compare Version Numbers
查看>>
.net 面试算法题
查看>>
Spring普通类获取bean
查看>>
软件工程结对作业01
查看>>
第十一周项目2-求最大公约数
查看>>
UP Board 妄图启动ubilinux失败
查看>>
Django中通过定时任务触发页面静态化的方式
查看>>
MyBatis中sqlSession操作数据库,不报错但无法实现数据修改(增、改、删)
查看>>
solr之环境配置四
查看>>