×

java反射调用方法传参

java反射调用方法传参(java反射调用private方法)

admin admin 发表于2023-12-01 19:52:43 浏览36 评论0

抢沙发发表评论

本篇文章给大家谈谈java反射调用方法传参,以及java反射调用private方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

java反射调用private方法

Java程序不能访问持久化类的private方法,但是利用JAVA的反射机制可以实现调用,代码如下: 

《span style="font-size:14px;"》import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class ReflectDemo {public static void main(String args) throws Exception {Method method = PackageClazz.class.getDeclaredMethod("privilegedMethod", new Class{String.class,String.class});  method.setAccessible(true);method.invoke(new PackageClazz(), "452345234","q31234132");}}class PackageClazz {private void privilegedMethod(String invokerName,String adb) {System.out.println("---"+invokerName+"----"+adb);}}《/span》#程序输出结果为:---452345234----q31234132

Java反射机制获取set()方法 并且为set()方法传值

Class.getDeclaredMethod() 是获取这个类中所有的方法,返回的是Method如果有参数,第1个是方法名称,第2个是该方法的所有参数数组,这样返回的是Method这个对象Method.invoke() 传入调用方法的类,另一个是调用这个方法所需要的参数,如果该方法没有参数,可以不填写,在JDK1,4之前,第2个参数是传入一个数组的,但是在jdk1.5之后,可以不传数组,多个参数用逗号隔开 不知道你听明白没

java怎么通过反射的方式调用可变形参的方法

ava反射调用可变参数的方法的方式是传入objects参数,如下代码:1234567891011121314151617181920212223242526272829303132333435363738394041424344 public class Reflect { public static void main(String args) throws Exception { Class《?》 clazz = Single.class; Single single = (Single) clazz.newInstance(); List《String》 list = new ArrayList《String》(){ private static final long serialVersionUID = 1L; { add("fuck"); add("ni"); add("mei"); } }; //获取method两种方式, 在method中 数组的的空间大小是可以随便写的不一定使用0 /* 1 */ Method method = clazz.getDeclaredMethod("method", Array.newInstance(Object.class, 0).getClass()); /* 2 */ method = clazz.getDeclaredMethod("method", (new Object).getClass());//初始化参数

java 类的反射机制调用代参方法

应该这样定义getDeclaredMethod():getDeclaredMethod(方法名,参数),方法名是一个字符串型的,参数是一个class类型的,例:getDeclaredMethod("setName",new Class {参数类型.class}),有几个参数就写几个.class。在调用时,用获得的Method的对象来调用invoke方法,例:Method对象.invoke(你定义类的类对象,new Object {参数})。此处传递的参数与上面定义的参数类型相对应希望能解决你的问题!

JAVA反射传参

Class《?》 localClass = Class.forName (this.description.getClassName ());Method localMethod = localClass.getDeclaredMethod ("createDemoPanel", (Class) null);JPanel localJPanel = (JPanel) localMethod.invoke (null, (Object) null);

Java类用反射机制来调用带参数的方法碰到的一些问题

Method m = this.getClass().getMethod(action, Object.class, Object.class);这里改成: Method m = this.getClass().getMethod(action, HttpServletRequest.class, HttpServletResponse.class);----------------------已经有人比我先回答了,呵呵。至于楼上说的第2点从效率上来说,改为this会快一些。

java反射调用方法可以传非基本类型吗如对象、接口

可以的,参数类型是没有限制的。通过以下代码可以证明。

接口:

public interface MyInterface {    void print();}

实现类:

public class MyInterfaceImpl implements MyInterface {    @Override    public void print() {        System.out.println("interfaceImpl");    }}

通过反射调用方法:

import java.lang.reflect.Method;public class Test {    public static void main(String args) throws Exception {        Test instance = Test.class.newInstance();        Method method = Test.class.getDeclaredMethod("test", MyInterface.class);        MyInterface myInterface = new MyInterfaceImpl();        method.invoke(instance, myInterface);    }    public void test(MyInterface myInterface) {        myInterface.print();    }}

关于本次java反射调用方法传参和java反射调用private方法的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。