今天學習Spring3框架,在理解模擬實現Spring Ioc容器的時候遇到了getInterfaces()方法。getInterfaces()方法和Java的反射機制有關。它能夠獲得這個對象所實現的接口。
例如:
Class> string01 = person.getClass().getInterfaces()[0];
//獲得person對象所實現的第一個接口
詳細的例子如下:
Person類:
packagecom.deciphering.spring;
publicclassPersonimplementseagle,whale{
privateString name ="小明";
privateintid =10001;
publicvoidSpeak(String name){
System.out.println("我的名字"+name+" "+"編號"+ id);
}
@Override
publicvoidfly() {
System.out.println("I can Fly!!!");
}
@Override
publicvoidswim() {
System.out.println("I can swimming!!!");
}
publicstaticvoidmain(String args[]){
Person person = newPerson();
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);
}
}
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接口:
packagecom.deciphering.spring;
publicinterfaceeagle {
publicvoidfly();
}
package com.deciphering.spring;
public interface eagle {
public void fly();
}
whale接口:
packagecom.deciphering.spring;
publicinterfacewhale {
publicvoidswim();
}
package com.deciphering.spring;
public interface whale {
public void swim();
}
運行結果: