java 反射获取对象_使用Java反射机制获取对象
本文由廣州瘋狂軟件教育java培訓(xùn)分享:
構(gòu)造接口Person,所有Person都會(huì)問好,但具體講什么語言就不知道了!
package interf;
public interface Person {
public void sayHello();
}
構(gòu)造一個(gè)Person的實(shí)現(xiàn)類American,問好的時(shí)候講英語
package interf;
public class American implements Person {
@Override
public void sayHello() {
System.out.println("Hello,I'm American!");
}
}
構(gòu)造一個(gè)Person的實(shí)現(xiàn)類Chinese,問好的時(shí)候講中文
package interf;
public class Chinese implements Person {
public void sayHello() {
System.out.println("你好,我是中國人!");
}
//重寫sayHello方法
public void sayHello(String language) {
this.language=language;
System.out.println("你好,我用"+language+"問好!");
}
}
package interf;
import org.junit.*;
public class PersonTest {
public void Test() throws ClassNotFoundException, InstantiationException,
IllegalAccessException {
//第一種方式,直接new
Person p = new Chinese();
p.sayHello();
//第二種方式,采用反射機(jī)制獲取對(duì)象
//Class> c = Class.forName("interf.Chinese");
Class> c = Class.forName("interf.American");
System.out.println("Chinese類全名:"+Chinese.class.getSimpleName());
System.out.println("Chinese類名:"+Chinese.class.getName());
Person p3 = (Person)c.newInstance();
p3.sayHello();
try {
Constructor> constructor = Chinese.class.getConstructor(); //獲取構(gòu)造方法
Chinese chineseReflect = (Chinese) constructor.newInstance(); //創(chuàng)建對(duì)象
Method method = Chinese.class.getMethod("sayHello",String.class); //獲取方法
method.invoke(chineseReflect, "中文"); //調(diào)用方法
Field field = Chinese.class.getField("language"); //獲取域
System.out.println("Reflect -> " + field.get(chineseReflect)); //獲取域的值
} catch (Exception e) {
e.printStackTrace();
}
}
}
test結(jié)果如下:
你好,我是中國人,我用中文
Chinese類全名:Chinese
Chinese類名:interf.Chinese
Hello,I'm American!
你好,我用中文問好!
Reflect -> 中文
瘋狂軟件教育中心依托開發(fā)團(tuán)隊(duì)的強(qiáng)大技術(shù)實(shí)力,把企業(yè)最新技術(shù)融入實(shí)訓(xùn)課程,打造金牌的品質(zhì),才能給予學(xué)員黃金的未來,瘋狂軟件憑借過硬的技術(shù)實(shí)力與豐富的項(xiàng)目開發(fā)經(jīng)驗(yàn),贏得了社會(huì)的肯定。瘋狂軟件Java培訓(xùn)師資力量強(qiáng)大,課程內(nèi)容深入,為學(xué)員高薪就業(yè)做了很好的鋪墊,擁有豐富就業(yè)指導(dǎo)經(jīng)驗(yàn)的就業(yè)團(tuán)隊(duì)也成為了學(xué)員高薪就業(yè)的先天優(yōu)勢。地址:廣州天河區(qū)車陂灃宏大廈3樓
總結(jié)
以上是生活随笔為你收集整理的java 反射获取对象_使用Java反射机制获取对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像迁移风格保存模型_图像风格迁移也有框
- 下一篇: java 冒泡排序的三种写法_冒泡排序的