java反射机制
来源:互联网 发布:php 图片处理库 编辑:程序博客网 时间:2024/06/06 00:58
java的反射主要使用了以下几个类:Class Method Constructor Field。
顾名思义:
Class 是类,可以通过以下几种方式取得:
Class.forName("xx");MyModel.class
Constructor.newInstance(Object ... initargs)
Field是这个类中包含的属性。
具体看一下代码:
import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * Created by vito.zhou on 2016/6/14. */public class ReflectModel { private String privateField; String normalField; public int publicField; private void privateMethod() {} public ReflectModel(String privateField, String normalField) { this.privateField = privateField; this.normalField = normalField; } public String getPrivateField() { return privateField; } public void setPrivateField(String privateField) { this.privateField = privateField; } public void printField() { System.out.println(getPrivateField() + ":" + normalField); } public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { Class reflectModelClass = Class.forName("ReflectModel"); Constructor constructor = reflectModelClass.getConstructor(String.class, String.class); ReflectModel reflectModel = (ReflectModel)constructor.newInstance("Hello", "World"); reflectModel.printField(); Method[] methodAry = reflectModelClass.getMethods(); for (Method method:methodAry) { System.out.println(method.getName()); if (method.getName().equals("setPrivateField")) { method.invoke(reflectModel, "Set Hello"); } } reflectModel.printField(); Field[] fields = reflectModelClass.getFields(); for (Field field:fields) { System.out.println(field.getName()); } }}
java反射可以操作类中的属性方法等特性 可以使得java可以实现代理。代理可以下一次开始记录
0 0
- 【反射】JAVA反射机制
- 【Java】JAVA反射机制
- Java 反射机制[Field反射]
- Java 反射机制[Method反射]
- Java反射机制笔记-反射机制
- java的反射机制
- Java的反射机制
- java反射机制详解!
- Java反射机制
- Java的反射机制
- java 反射机制--侯捷
- java反射机制
- java反射机制
- [候捷]Java反射机制
- java 反射机制
- java 反射机制初探
- 关于Java反射机制
- java反射机制
- MySQL入门04-MySQL主从配置
- Maximum Subarray
- Codeforces Round #312 (Div. 2) A~E && CDE题解
- MVC----mvc.xml配置和mvcHelp类
- android material design之Toolbar(一)
- java反射机制
- 第十一周项目:日期时间类
- ffmpeg 新老接口问题及对照集锦
- SQL表连接查询(inner join、full join、left join、right join)
- 全面解读PHP的人气开发框架Laravel
- PHP合并数组+与array_merge的区别分析
- iOS开发 - 第02篇 - UI进阶 - 13 - 核心动画
- 微信支付集成
- java正则表达式语法详解及其使用代码实例