Java 反射
来源:互联网 发布:上海知柚公司图片 编辑:程序博客网 时间:2024/06/03 17:09
实例
public class Car {private String brand;private String color;private int maxSpeed;/** * @return the brand */public String getBrand() {return brand;}/** * @param brand the brand to set */public void setBrand(String brand) {this.brand = brand;}/** * @return the color */public String getColor() {return color;}/** * @param color the color to set */public void setColor(String color) {this.color = color;}/** * @return the maxSpeed */public int getMaxSpeed() {return maxSpeed;}/** * @param maxSpeed the maxSpeed to set */public void setMaxSpeed(int maxSpeed) {this.maxSpeed = maxSpeed;}public Car() {super();// TODO Auto-generated constructor stub}public Car(String brand, String color, int maxSpeed) {super();this.brand = brand;this.color = color;this.maxSpeed = maxSpeed;}/* (non-Javadoc) * @see java.lang.Object#toString() */@Overridepublic String toString() {return "Car [brand=" + brand + ", color=" + color + ", maxSpeed="+ maxSpeed + "]";}public void introduce(){System.out.println(this.toString());}}
import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class ReflectTest {public static Car initByDefaultConst() throws Throwable{ClassLoader loader = Thread.currentThread().getContextClassLoader();Class clazz = loader.loadClass("com.gfzs.ioc.Car");Constructor cons = clazz.getDeclaredConstructor();Car car = (Car)cons.newInstance();Method setBrand = clazz.getMethod("setBrand", String.class);setBrand.invoke(car, "红旗CA72");Method setColor = clazz.getMethod("setColor", String.class);setColor.invoke(car, "黑色");Method setMaxSpeed = clazz.getMethod("setMaxSpeed", int.class);setMaxSpeed.invoke(car, 200);return car;}public static void main(String[] args) throws Throwable {Car car = initByDefaultConst();car.introduce();}}
反射可以绕过Java的封装访问private、protected成员变量和方法,但必须通过setAccessible(true)取消Java语言检测。
0 0
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- Jquery函数集锦
- Java中thread的join方法
- 关于iOS开发的一些坑
- 关于通知
- Scrum is new waterfall
- Java 反射
- ts流psi/si:学习笔记3
- linux源代码阅读工具(转载)
- Android Studio 1.5 RC1搭建NDK开发环境
- isalnum()和isalpha()
- Java非对称加密算法--RSA
- Oracle中CHAR、VARCHAR的区别
- 历史上的今天api调用文档
- MFC使用duilib的几种方式