通过反射访问私有方法

 1 package com.dy.xidian;
 2
 3 import java.lang.reflect.InvocationTargetException;
 4 import java.lang.reflect.Method;
 5
 6 class A {
 7     private void a() {
 8         System.out.println("This is a function");
 9     }
10 }
11 public class TestReflect {
12     public static void main(String[] args) throws NoSuchMethodException,
13             SecurityException, IllegalAccessException,
14             IllegalArgumentException, InvocationTargetException {
15         A a = new A();
16         Method g = a.getClass().getDeclaredMethod("a");
17         g.setAccessible(true);
18         g.invoke(a);
19     }
20 }

通过反射机制可以访问A中的私有方法。

时间: 2024-10-08 23:13:57

通过反射访问私有方法的相关文章

Java内存理解 && 反射访问私有属性或方法

理解了内存,就理解了一切,就理解了各种各样的语言.所有的语言无非都是这样:局部变量分配内存永远在栈里面,new出来的东西分配内存永远是在堆里,静态的东西分配内存永远是在数据区.剩下的代码肯定是在代码区.所有的语言都是这样. 对于在API文档里面找某个类,如果一个类不用引入包就可以直接使用,那么这个类肯定是在java.lang这个包里. 接口是抽象方法(public)和常量值(public static final)的集合. 抽象类一定要有abstract关键字. Java反射之访问私有属性或方法

如何访问私有方法

# -*- coding: utf-8 -*- #python 27 #xiaodeng #如何访问私有方法 class Securityp(object): def __my(self): print "Bet you can't see me..." b=Securityp() print dir(b) #打印出所有的方法和属性等信息 print b.__dict__ #没有打印结果 b._Securityp__my() ''' ['_Securityp__my', '__clas

反射——反射访问私有成员

//BindingFlags.NonPublic | BindingFlags.Instance标志枚举,用于访问私有成员 namespace 通过反射访问私有成员 { class Program { static void Main(string[] args) { Type getMoth = typeof(person); MethodInfo info = getMoth.GetMethod("SayHi",BindingFlags.NonPublic | BindingFla

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

以下为本次实践代码: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Linq; 5 using System.Reflection; 6 using System.Text; 7 using System.Threading.Tasks; 8 9 namespace ConsoleTest 10 { 11 class Program 12 { 13

c# 通过反射获取私有方法

class Program { static void Main(string[] args) { //通过反射来调私有的成员 Type type = typeof(Person); //BindingFlags类型枚举,BindingFlags.NonPublic | BindingFlags.Instance 组合才能获取到private私有方法 MethodInfo methodInfo = type.GetMethod("SayHello", BindingFlags.NonP

java反射调用私有方法和修改私有属性

//调用私有方法package com.java.test; public class PrivateMethod { private String sayHello(String name) { return "hello "+name; } } 测试: package com.java.test; import java.lang.reflect.Method; public class PrivateMethodTest { public static void main(Str

java反射机制(访问私有字段和私有方法)

来自:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html 尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和私有方法是可行的,其实并没有那么困难. 注释:只有在单独的JAVA程序中运行该代码才有效,就像你做一些单元测试或者常规的程序.如果你尝试在JAVA APPLET内使用该方法,你需要稍稍修改SecurityManager.但是,因为你不是经常需要与它打交道,这里也就不再赘述了. 这

通过反射,如何操作私有成员变量(取/赋值),如何调用私有方法?

Java的反射工具很强大,有句著名的话:No reflection ,no frameworks. 工作中直到涉及到UT,才体会到它的重要性,现归纳整理一个小例子: 反射工具类: 1 import java.lang.reflect.Field; 2 import java.lang.reflect.InvocationTargetException; 3 import java.lang.reflect.Method; 4 5 public class ReflectionUtil { 6 7

反射获取一个类的私有方法

今天在刷面试题的时候,发现一个题目是编写程序通过反射获取一个类的私有方法,因为之前学反射的时候也学的浅,没有考虑到这样的事情.今天敲了一下,虽然也就是那么几行代码,还是磕磕绊绊的,最后终于搞定了,这里总结一下 Java反射得到一个类的私有方法 获得私有方法的流程是 (1)获取目标类 (2)获取目标方法 Method method=clazz.getDeclaredMethod(name);//可以调用类中的所有方法(不包括父类中继承的方法) Method method=clazz.getMeth