关于java的反射,调用私有方法(有参数私有方法),私有属性
来源:互联网 发布:mac os x lion系统 编辑:程序博客网 时间:2024/05/22 03:17
第一步,创建一个实体类,里面有私有属性和私有方法
package com.wbs.fanshe.domain;public class Person {private int age = 19;private String name ;public String getName(){return name;}private String setName(String name){this.name= name;return "老罗的锤子手机很好用";}private String setNameAndAge(String name ,int age){this.name = name;this.age = age;return "老罗写的书《我的奋斗》很好看很搞笑";}}
第二步,获得私有属性的值,调用私有方法(有参数私有方法)
package com.wbs.fanshe.test;import java.lang.reflect.Field;import java.lang.reflect.Method;import com.wbs.fanshe.domain.Person;public class testPerson {public static void main(String[] args) {Person person = new Person();try {Class clazz = Class.forName("com.wbs.fanshe.domain.Person");Person obj = (Person) clazz.newInstance();//1.获取私有属性值//注意:是getDeclaredField,不是getFieldField privateStringField = clazz.getDeclaredField("age"); //允许访问私有字段privateStringField.setAccessible(true);//获得私有字段值 int fieldValue = (int) (privateStringField).get(obj);System.out.println("Person私有属性:"+fieldValue);//2.调用私有方法(有参数且只有一个参数)Method methodOne = clazz.getDeclaredMethod("setName",String.class);//允许访问私有方法methodOne.setAccessible(true); //调用私有方法获得返回值String stringOne = (String) methodOne.invoke(obj,"黄小明");System.out.println("调用私有方法(一个参数)的返回值:"+stringOne);//3.调用私有方法(有参数且有多个参数)Method methodTwo = clazz.getDeclaredMethod("setNameAndAge",String.class,int.class);//允许访问私有方法methodTwo.setAccessible(true); //调用私有方法获得返回值String stringTwo = (String) methodTwo.invoke(obj,"乔布斯",25);System.out.println("调用私有方法(多个参数)的返回值::"+stringTwo);} catch (Exception e) {e.printStackTrace();}}}
下载代码_java反射
阅读全文
0 0
- 关于java的反射,调用私有方法(有参数私有方法),私有属性
- 利用java的反射机制调用类的私有方法及私有属性
- Java通过反射调用其他类的私有属性和私有方法
- 反射调用私有方法
- 利用java反射调用类的的私有方法(包括父类中的私有方法)
- 利用反射调用私有方法、访问私有属性
- 利用反射访问私有属性、调用私有方法
- Java反射学习总结二(用反射调用对象的私有属性和方法)
- 使用反射调用私有属性和方法
- Java反射-获取私有方法及私有属性
- java通过反射调用私有变量和私有方法
- 反射访问类的私有属性对象的私有方法
- Java反射机制(三):调用对象的私有属性和方法
- 调用java的私有方法
- 调用java的私有方法
- java反射访问私有属性和方法
- java 调用 私有方法
- Java反射机制调用私有方法
- CodeForces334B
- LeetCode22.Generate Parentheses
- 蓝桥杯 最大最小公倍数
- java int与integer的区别
- 网络学习——unity中Mathf数学运算
- 关于java的反射,调用私有方法(有参数私有方法),私有属性
- Java编程思想-9
- 机器学习项目到底怎么做? 站在巨人的肩膀上!-----资料分享
- vs2017控制台出现中文乱码
- **系统调用**
- c语言实验—时间格式转换
- 《DOS命令一日通》第二章 使用计算机起步工作
- Spring(三、Spring AOP)
- php 字符串使用总结