对私有方法private void equalsAddress(String name){}的疑问

来源:3-10 自由编程

qq_旧安_0

2019-11-25 10:34:41

老师请问对带参的equalsAddress方法,如何把null作为参数传入,我尝试了一下会报异常

//获得私有有参有返回值的方法
		Class class7=Class.forName("reflect.Goods");
		Goods goods8=(Goods)class7.newInstance();
		Method method3=class7.getDeclaredMethod("equalsAddress",String.class);
		method3.setAccessible(true);
		System.out.println( method3.invoke(goods8,null) );


写回答

1回答

好帮手慕柯南

2019-11-25

同学你好!

  1. invoke 方法的第二个参数是可变参数(实际上是一个数组),你直接给一个 null 的话,jvm 会视为你没给参数。所以会报错。

  2. 如果你想为null,将 null 显示强转为 String 就可以了

    http://img.mukewang.com/climg/5ddb79f309ae80b206990137.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0
hq_旧安_0
h 好的,谢谢老师,理解了!
h019-11-26
共1条回复

0 学习 · 8016 问题

查看课程