java反射小例子
时间:2014-07-01 22:14:33
收藏:0
阅读:248
package com.txwsqk.reflect;
public class Car {
private String brand;
private String color;
private int maxspeed;
public Car(){}
public Car(String brand, String color, int maxspeed){
this.brand = brand;
this.color = color;
this.maxspeed = maxspeed;
}
public void intruduce(){
System.out.println("brand "+brand+" color: "+color+" maxspeed: "+maxspeed);
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getMaxspeed() {
return maxspeed;
}
public void setMaxspeed(int maxspeed) {
this.maxspeed = maxspeed;
}
}
主函数
package com.txwsqk.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class CarTest {
public static Car initByDefaultConst() throws Throwable{
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?> clazz = loader.loadClass("com.txwsqk.reflect.Car");
Constructor<?> cons = clazz.getDeclaredConstructor((Class[])null);
Car car = (Car) cons.newInstance();
Method setBrand = clazz.getMethod("setBrand", String.class);
setBrand.invoke(car, "BMW");
Method setColor = clazz.getMethod("setColor", String.class);
setColor.invoke(car, "red");
Method setMaxspeed = clazz.getMethod("setMaxspeed", int.class);
setMaxspeed.invoke(car, 150);
return car;
}
public static void main(String[] args) throws Throwable {
Car car = initByDefaultConst();
car.intruduce();
}
}
输出:
brand BMW color: red maxspeed: 150
评论(0)