`
lijunaccp
  • 浏览: 160725 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用反射访问私有成员变量

阅读更多
用JAVA反射机制访问私有成员变量
1. PrivateTester.java
package com.test;

public class PrivateTester {
	
	private String name="hello world";
	
	public String getName(){
		return this.name;
	}
}


2. ReflectionTest.java
package com.test;

import java.lang.reflect.Field;

public class ReflectionTest {

	/**
	 * @param args
	 * @throws Exception 
	 * @throws  
	 */
	public static void main(String[] args) throws Exception {
		PrivateTester pt=new PrivateTester();
		
		Class<?> classType=PrivateTester.class;
		
		Field field=classType.getDeclaredField("name");
		
		field.setAccessible(true);  //压制JAVA访问控制检查
		
		String str=(String)field.get(pt);
		
		System.out.println(str);
		
		field.set(pt, "world");
		
		System.out.println(field.get(pt));
	}

}
分享到:
评论

相关推荐

    反射修改私有成员变量例子

    在本例中,我们将使用 Java 反射机制来修改私有成员变量的值。 什么是 Java 反射机制? Java 反射机制是 Java 语言中一个内置的机制,它允许程序在运行时检查和修改类的结构和行为。反射机制提供了一种方式来在...

    C#net反射实现访问类中的私有变量或者方法

    除了访问私有成员外,反射还可以用来动态地创建对象实例。例如,可以通过`Activator.CreateInstance()`方法或`Type.InvokeMember`方法来创建对象。 #### 3.2 调用方法 对于方法的调用,同样可以使用反射来实现。...

    Java反射访问私有变量和私有方法.doc

    Java 反射访问私有变量和私有方法 Java 反射机制是 Java 语言中的一种强大的工具,使得我们可以在运行时装配代码,而无需在对象之间进行源代码链接,从而使代码更具灵活性。在实际测试中,我们经常需要访问类的非...

    Java反射机制修改私有成员变量的实现_Reflection

    在Java中,反射机制主要用于以下几种情况:动态加载类、访问私有成员、运行时检查类型以及调用私有方法等。 标题“Java反射机制修改私有成员变量的实现_Reflection”着重讲述了如何利用反射来修改私有成员变量的值...

    java 利用反射获取内部类静态成员变量的值操作.docx

    本文将详细介绍如何使用Java反射技术来获取内部类中的静态成员变量的值。 #### 二、背景知识 在深入探讨之前,我们需要了解几个基本概念: 1. **内部类**:内部类是一种特殊的类,定义在另一个类(外部类)的内部。...

    C++访问类中私有成员变量的方法

    还有一种比较文艺青年的方法,我们知道,一个进程有程序段和数据段,如果我们知道了对象的数据空间,那么得到该对象的成员变量值也很简单了,而实际上,对象数据段的首地址其实是对象地址,以例子说明:  方法1:...

    java使用反射访问成员变量的值示例

    在实例中,先获取了名为"name"的成员变量,并通过setAccessible(true)方法,关闭了Java的访问权限检查,这使得即便是私有成员变量也可以被访问。 然后,使用Field对象的set()方法,可以将任意的对象作为参数传递...

    反射高手巧妙实现强行私有成员源代码,java跨域范围

    以下是一个简单的例子,展示如何使用反射访问私有字段: ```java public class PrivateMemberExample { private String secret = "这是私有变量"; // ... } public class HackUtils { public static void main...

    Java对类私有变量的暴力反射技术讲解

    私有变量是指在类中声明的私有成员变量,以private关键字修饰的变量。这些变量只能在声明的类中访问,外部类或对象无法直接访问。 Java中的反射机制提供了一种方式来访问和修改私有变量,即使用Java.lang.reflect....

    C#访问及调用类中私有成员与方法示例代码

    总结来说,虽然直接访问私有成员不是常规的编程实践,但反射提供了一种手段来在特定情况下访问这些受保护的成员。然而,应当谨慎使用,因为这可能会破坏类的封装性和安全性,且可能导致代码难以维护。在大多数情况下...

    c# 变量反射使用赋值

    此外,反射可以访问私有和受保护的成员,这可能导致安全问题,所以使用时需谨慎。 在实际项目中,尤其是在WPF应用中,反射常用于动态数据绑定、插件机制、序列化/反序列化、单元测试等场景。结合依赖注入和面向接口...

    私有java

    6. **Java反射API**:虽然私有成员在正常情况下无法被外部访问,但通过Java反射API,可以在运行时动态地获取类的信息并访问私有成员。然而,这通常是不推荐的,因为破坏了封装性,可能导致安全问题和难以维护的代码...

    android系统java反射机制详解

    2. 安全风险:反射可以访问私有成员,可能破坏封装性,增加安全漏洞。 3. 代码复杂度:过度使用反射会使代码难以理解和维护。 五、注意事项与最佳实践 1. 尽量减少反射使用,特别是在性能敏感的代码段。 2. 使用try...

    易语言从外部取类成员

    如果要从外部访问私有成员,可能需要提供公共的访问接口或使用特殊技巧。 - **方法2**:可能指的是通过接口(Interface)或抽象类(Abstract Class)来访问类成员,这种方式增加了代码的封装性和安全性。 - **方法...

    第12章 反射.pdf

    - 通过反射可以访问和修改私有成员,这可能导致安全问题。例如,可以无视访问权限来获取或设置私有字段的值。 - 为了避免这种情况,反射API提供了`setAccessible(true)`方法,允许或拒绝访问受保护的成员。 在...

    利用反射给属性赋值

    3. 访问私有成员:可以通过反射访问类的私有字段和方法。 4. 自动化测试:测试框架常使用反射来模拟各种输入和验证输出。 5. 框架设计:许多高级框架如Spring,Hibernate等都利用反射来实现依赖注入和元数据驱动的...

    Java反射获取私有构造函数、属性、方法

    Java 反射机制是 Java 语言中最强大和最灵活的机制之一,它允许开发者在运行时动态地获取和操作类的成员变量和方法。其中,获取私有构造函数、属性、方法是 Java 反射机制的重要应用之一。 在 Java 中,默认情况下...

    Java反射机制

    - **安全问题**:反射可以访问私有成员,这可能会导致安全性问题。 - **破坏封装性**:过度使用反射可能会破坏类的设计原则。 #### 九、示例代码 下面是一个简单的示例,演示如何使用反射获取类的信息并创建对象:...

    android 反射机制 简单示例

    2. **访问私有成员**:反射允许我们访问通常被封装的私有方法和字段,这对于测试、调试或者扩展已有代码非常有用。 3. **执行泛型方法**:在运行时,可以通过反射来调用带有泛型的方法,尽管在编译时类型信息已经...

    JAVA反射知识总结

    通过反射,可以突破访问控制,动态创建对象,调用方法,以及访问私有成员等。 2. 获取类的Class实例: 在Java中,每个类都有一个对应的Class对象,通过它可以获取类信息并实现反射操作。 - 使用类字面量:`Class ...

Global site tag (gtag.js) - Google Analytics