Java反射基本使用方法 示例
2013-06-01 21:36
771 查看
package com.reflection; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * @author 鲁志明 E-mail: 13688601037@139.com * @version 创建时间:2013-6-1 下午9:06:22 * */ public class Demo { public static void main(String[] args) throws Exception, SecurityException { /** * 构造对象的步骤 */ //1.获得Class对象 Class<Person> personClass = Person.class; //2.获得Constructor对象 Constructor<Person> personConstructor = personClass.getDeclaredConstructor(null); //3.设置该private的构造方法 可访问为true personConstructor.setAccessible(true); //4.利用Constructor构造出该对象 Person person = personConstructor.newInstance(null); person.setAge(3); System.out.println("age="+person.getAge()); /** * 调用属性的步骤 */ // 1.获得age Field 属性对象 Field personAgeField = personClass.getDeclaredField("age"); // 2.设置属性的 可访问为true personAgeField.setAccessible(true); // 3.给该属性设置值 , 设置的时候需要确定是给哪个对象设置,所以第一个参数是我们构造出来的person对象 personAgeField.setInt(person, 4); System.out.println("age="+person.getAge()); /** * 调用无参数 无返回值 方法 */ Method personMethod1 = personClass.getDeclaredMethod("method1", null); personMethod1.setAccessible(true); personMethod1.invoke(person, null); /** * 调用有多个参数 有返回值的方法 */ // 1.获得Method对象,第一个参数是方法的名字,第二个参数是方法参数的Class数组对象 Method personMethod2 = personClass.getDeclaredMethod("method2",new Class[]{String.class,String.class}); // 2.设置可访问 为 true personMethod2.setAccessible(true); // 3.使用invoke()方法来执行某个对象的该方法 // invoke的第一个参数是要执行该方法的对象,第二个参数是 执行该方法的需要参数数组 String result = (String)personMethod2.invoke(person, new Object[]{"参数1","参数2"}); System.out.println(result); } }
相关文章推荐
- Java的JSON转换库GSON的基本使用方法示例
- Java反射基本概述及使用方法
- java中反射基本的方法以及使用
- java反射基本使用(得到类中属性、方法、构造方法)
- java中反射的基本使用方法
- JAVA 反射中的一些方法的使用
- Java反射(五)-Java 方法反射的基本操作
- java中的内部类与匿名类的基本使用方法
- java反射调用配置文件构造类对象,使用其方法
- Java使用新浪微博API开发微博应用的基本方法
- Java中使用反射调用静态方法
- Java--Reflect(反射)专题5——方法反射的基本操作
- Android(java)学习笔记107-1:通过反射获得带参构造方法并且使用
- Java访问私有属性(不使用getter方法和反射)
- Java使用注解和动态代理实现方法调用时的日志记录示例
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
- java使用common-httpclient包实现post请求方法示例
- 两种模型选择和超参数调整方法及Spark MLlib使用示例(Scala/Java/Python)
- 【转】java中的内部类与匿名类的基本使用方法
- java 反射使用构造方法