Java反射基本使用方法 示例

本文通过一个具体的示例详细介绍了如何使用Java反射机制来创建对象、访问属性及调用方法等。主要内容包括:获取Class对象、获取构造器并设置其可访问性、创建实例、设置私有字段值、调用无参方法以及带参方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
		
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值