【java】反射机制

来源:互联网 发布:淘宝推广计划书 编辑:程序博客网 时间:2024/05/16 11:44


Car.java

package test;public class Car {  private String Brand;  private String color;  private int maxSpeed;    public String getBrand() {return Brand;}public void setBrand(String brand) {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;}    public Car(){}public Car(String Brand,String color,int maxSpeed){this.Brand=Brand;this.color=color;this.maxSpeed=maxSpeed;}public void introduce(){System.out.println("brand:"+Brand+" color"+color+" maxSpeed"+maxSpeed);}}


ReflectTest.java

package test;public class Car {  private String Brand;  private String color;  private int maxSpeed;    public String getBrand() {return Brand;}public void setBrand(String brand) {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;}    public Car(){}public Car(String Brand,String color,int maxSpeed){this.Brand=Brand;this.color=color;this.maxSpeed=maxSpeed;}public void introduce(){System.out.println("brand:"+Brand+" color"+color+" maxSpeed"+maxSpeed);}}

privateCarReflect.java

package test;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class PrivateCarReflect {   public static void main(String[] args) throws Throwable{   ClassLoader loader =Thread.currentThread().getContextClassLoader();   Class clazz=loader.loadClass("test.Car");      Constructor cons=clazz.getDeclaredConstructor((Class[])null);   Car car=(Car)clazz.newInstance();      Field colorfldField=clazz.getDeclaredField("color");      colorfldField.setAccessible(true);   colorfldField.set(car, "hongse");      Method dirveMethod=clazz.getDeclaredMethod("drive", (Class[])null);      dirveMethod.setAccessible(true);   dirveMethod.invoke(car, (Object[])null);      }}




0 0
原创粉丝点击