目錄
前言:
代碼部分:
computer類:
1.類名.class創(chuàng)建反射對象:
2.對象.getclass創(chuàng)建反射對象:
3.Class.forName("")創(chuàng)建反射對象:
前言:
JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為Java語言的反射機(jī)制。文章來源:http://www.zghlxwxcb.cn/news/detail-622009.html
這里的反理解為反轉(zhuǎn),控制反轉(zhuǎn)。假如我們需要零花錢就找老婆要,這是“正”。但是現(xiàn)在反過來是老婆主動給我們,這是“反”。雖然最后的結(jié)果都一樣,都是老婆給我們零花錢,但是方式不一樣。程序中以前創(chuàng)建對象是通過new
來創(chuàng)建對象,自上而下。但是現(xiàn)在我們可以使用反射技術(shù)反過來自下而上的提供訪問。反射相關(guān)的類都在java.lang.reflect
包下。文章來源地址http://www.zghlxwxcb.cn/news/detail-622009.html
代碼部分:
computer類:
package com.dmdd.ioc;
public class Computer {
private String brand;
private Cpu cpu;
private Memory memory;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public Cpu getCpu() {
return cpu;
}
public void setCpu(Cpu cpu) {
this.cpu = cpu;
}
public Memory getMemory() {
return memory;
}
public void setMemory(Memory memory) {
this.memory = memory;
}
public void start (){
System.out.println(brand+"品牌的電腦啟動了");
cpu.run();
memory.read();
memory.write();
}
}
1.類名.class創(chuàng)建反射對象:
public static void main(String[] args) {
Class<Computer> computerClass = Computer.class;
}
2.對象.getclass創(chuàng)建反射對象:
public static void main(String[] args) {
Computer computer = new Computer();
Class<? extends Computer> aClass = computer.getClass();
}
3.Class.forName("")創(chuàng)建反射對象:
public static void main(String[] args) {
try {
Class.forName("com.dmdd.ioc.Computer");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
到了這里,關(guān)于java通過反射創(chuàng)建反射對象三種的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!