package com.reflect; import java.lang.reflect.Field; import java.lang.reflect.Method; public class TestReflect { public static void main(String[] args) { Class c; /* 反射获取类的方法 * try { c = Class.forName("com.reflect.Person"); Field[] f = c.getDeclaredFields(); //获取映射类所有字段属性 Method[] m = c.getDeclaredMethods(); //获取映射类的所有方法(继承的方法不会显示) for (int i = 0;i<m.length;i++) { //System.out.println(m[i].getName()+"========="+i); System.out.println(m[i]+"========="+i); //显示映射类的方法信息 } m[4].invoke(c.newInstance(), "aaa"); //调用映射类的方法 } catch (Exception e) { e.printStackTrace(); } */ Person p = new Person("张三",16); Dog d = new Dog("蓝色","汪汪","旺才"); // setObject(p); // System.out.println(p.getName()); getObjectInfo(p); } /** * 任何对象都可以设定值 */ public static void setObject(Object obj){ //获取所有反射类set方法 try { Class c = obj.getClass(); Field[] f = c.getDeclaredFields(); for(int i = 0;i<f.length;i++) { if(f[i].getName().equals("name")) { Method m = c.getMethod("setName", f[i].getType()); m.invoke(obj, "aaa"); } } } catch (Exception e) { e.printStackTrace(); } } /** * 显示任何对象所有属性 */ public static void getObjectInfo(Object obj){ //获取所有反射类的get方法 try { Class c = obj.getClass(); Field[] f = c.getDeclaredFields(); for(int i = 0;i<f.length;i++){ String fieldName = f[i].getName(); String name = "get"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1,fieldName.length()).toLowerCase(); //System.out.println(name); Method m = c.getMethod(name); System.out.println(m.invoke(obj, null)); } } catch (Exception e) { e.printStackTrace(); } } }
发表评论
-
java验证字符串中是否包含数字,对数字的操作
2016-03-15 11:01 9482在javascript中有一个方法 ... -
jdk7 Collections.sort()方法报非法参数异常
2016-03-03 18:57 12061JDK7的Comparison method violates ... -
log4j.properties配置详解
2016-01-18 16:50 1275Log4J的配置文件(Configuration File)就 ... -
Java 日期时间 Date类型,long类型,String类型表现形式的转换
2015-12-24 17:35 3272Java 日期时间 Date类型,long类型,String类 ... -
Java多线程-工具篇-BlockingQueue
2015-11-24 16:13 976Java多线程-工具篇-Block ... -
Java 实例 - 队列(Queue)入门用法
2015-11-23 17:27 1998队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表 ... -
Java中序列化的serialVersionUID作用
2015-11-13 14:13 4812Java序列化是将一个对象 ... -
java的序列化和反序列化
2015-10-27 19:48 1112Java基础学习总结——Jav ... -
java中volatile关键字的含义
2015-08-12 20:10 749java中volatile关键字的含 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 2957问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
String类中split方法的使用
2015-07-02 14:39 979String类中split方法的使用 split 方法:将一个 ... -
PreparedStatement防止SQL注入
2015-04-11 16:27 2786一条效率差的sql语句,足以毁掉整个应用. Stateme ... -
Session的生命周期
2015-04-11 11:58 906我们已经知道,Session是在用户第一次访问网 ... -
JAVA多线程和并发基础
2015-04-11 11:58 766JAVA多线程和并发基础 ... -
Java中equals()与hashCode()方法详解
2015-04-08 16:19 873一.equals()方法详解 equals()方法在o ... -
json数据后台处理
2015-03-30 16:05 789JAVA解析JSON问题,怎么解析,急!! String j ... -
java判断list为空
2015-01-30 15:25 3938java判断list为空 if(null == list | ... -
httpclient使用实践
2015-01-09 17:09 1334httpclient是什么这里不再详述(可参考最下方网址);直 ... -
java反射获取属性和方法
2015-01-09 11:12 3103反射的应用一般是要用到某些特殊类的属性和方法,无论是一般方法还 ... -
java中int 转String位数不够前面补零
2015-01-08 21:53 19922java 中int 转String位数不够前面补零 Stri ...
相关推荐
主要为大家详细介绍了Java通过PropertyDescriptor反射调用set和get方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
下面的例子,是Insus练习对一个类别的属性进行set和get值。 首先写一个类,再写一个可读写的属性: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <...
要想对一个类型实例的属性或字段进行动态赋值或取值,首先得得到这个实例或类型的Type,微软已经为我们提供了足够多的方法。... } } 然后编写反射该类的代码 代码如下: MyClass obj = new MyClass()
/// 创建对象或从缓存获取 /// </summary> public static object CreateObject(string AssemblyPath, string ClassNamespace) { object objType = DataCache.GetCache(ClassNamespace);//从缓存读取 if ...
Package getPackage() 获取包名 Class类中方法 T newInstance() 根据当前字节码创建对应的对象 Class类中方法 注意: 1. Class类中方法newInstance():创建当前字节码对象(只能调用无参且...
这样你就可以使用 Constructor 创建新的对象,用 get() 和 set() 方法读取和修改与 Field 对象关联的字段,用invoke() 方法调用与 Method 对象关联的方法。 另外,还可以调用 getFields() getMethods
8.利用反射机制进行排序工具类,支持数组、List、Set、Map的排序,可以支持多属性排序,支持子对象中的属性排序(例user对象中的role的name属性进行排序,method="role.name") 9.JVM参数获取工具 10.Java对象比较、...
本文实例讲述了go语言通过反射获取和设置结构体字段值的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:type MyStruct struct { N int } n := MyStruct{ 1 } // get immutable := reflect.ValueOf(n) ...
Java 反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信 息。反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值。
获取类内部信息2.1 构造函数2.1.1 获取构造函数2.1.2 使用构造函数构造实例2.2 Field 对象2.2.1 获取 Field 对象2.2.2 Field 的 set,get 操作2.3 Method 对象2.2.1 获取 Method 对象2.2.2 Method 的 invoke 操作3....
输出结果为:name say __set __get 也可以用class函数,获取对象属性的关联数组的信息 通过class()函数获取类的信息 打印结果: 通过这个反射API,可以做hook实现插件功能,动态代理等。 网上找的动态代理示例
首先,我们定义一个类: class CDynamic { #if true public const string TableName = p_battlerecord; // OK //public static string TableName = p_battlerecord; // OK #else public static string ...
原则上,C++类中私有变量不允许在类之外的其他任何地方访问,一般来说功能完善的类都会提供get,set方法来操作类属性值,还有是是通过友元访问。但是!但如果没有get、set方法都没有提供,也没有定义友元,比如使用...
#通过反射获取对象属性值并设置属性值 0、定义一个类 public class User { public int Id { get; set; } public string Name { get; set; } public string Age { get; set; } } 1、通过属性名(字符串)获取...
/// 【基实体--类】 /// /// 摘要: /// 1、所有的具体实现实体通过继承该抽象实体,以获取相应的的长整型编号值。 /// 2、为所有的具体实现实体的反射/依赖注入实例化操作,提供1个通用的抓手。 /// /// ...
Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。 Dapper.Net的示例代码: public class Dog { public int? Age { get; set; } public Guid Id { get; set;...
使用类加载器(使用反射的方式) Class.forName(driverName); 2.实例化Driver Driver driver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver(driver); 3.加虚拟机参数jdbc....
java代理实现get,set方法动态获取值 编写前端vue页面总体框架,编写后台代码交互 代码编写遇到的问题 问题: Vue使用问题 只有一个根路径 解决方案: 确保下只 - 不懂运行,下载完可以私聊问,可远程教学 该...