使用java反射,获取类的私有属性,调用类的私有方法
程序员文章站
2024-01-20 22:27:46
...
使用java反射,获取类的私有属性,调用类的私有方法
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class PrivateObject {
private String privateString = null; //声明为私有字段
public PrivateObject(String privateString) {
this.privateString = privateString;
}
private String getPrivateString() {//私有方法
System.out.println("----------调用了私有方法-------------");
return "-----私有方法------";
}
public static void main(String[] args) throws Exception {
// getPrivateAttribure();
callPrivateMethod();
}
private static void callPrivateMethod() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
PrivateObject privateObject = new PrivateObject("The Private Value");
Method privateStringMethod = PrivateObject.class.getDeclaredMethod("getPrivateString", null);
privateStringMethod.setAccessible(true);
String returnValue = (String) privateStringMethod.invoke(privateObject, null);
System.out.println("returnValue = " + returnValue);
}
private static void getPrivateAttribure() throws NoSuchFieldException, IllegalAccessException {
PrivateObject privateObject = new PrivateObject("The Private Value");//实例化对象
Field privateStringField = PrivateObject.class.getDeclaredField("privateString");
privateStringField.setAccessible(true);//允许访问私有字段
String fieldValue = (String) privateStringField.get(privateObject);//获得私有字段值
System.out.println("fieldValue = " + fieldValue);
}
}
上一篇: C# 反射 Reflection
下一篇: C# Reflection 反射 入门
推荐阅读
-
Java记录 -88- 利用反射机制调用对象的私有方法和属性
-
通过反射获取类对象的属性和方法及破坏私有属性
-
Java~反射的API文档使用(利用反射创建对象、反射私有构造方法、反射私有属性、反射私有方法)
-
在C++类的外部调用类的私有方法
-
使用java反射,获取类的私有属性,调用类的私有方法
-
类的封装性-- | 成员属性 | 成员方法 | 私有属性 | 私有方法 之间调用
-
Python —类的私有属性、公有属性、私有方法、公有方法
-
关于java的反射,调用私有方法(有参数私有方法),私有属性
-
Java通过反射调用其他类的私有属性和私有方法
-
python中类的封装--详解类中的私有变量、私有方法和静态属性