日期: 2011.5.27
平台: windows,eclipse,jdk1.6
问题简述: 最近在测试一个类中的私有方法,使用了JUnit-addons包中的PrivateAccessor.invoke方法。
这个方法的签名是invoke(java.lang.Class cls, java.lang.String name, java.lang.Class[] parameterTypes, java.lang.Object[] args).
第一个参数是要调用的类名,第二个参数是调用的私有方法名称。第三个参数是调用方法的参数类型。第四个参数是传入的参数列表。
关键就是第三个参数,需要传入参数的类型。因为int是基本类型,对应的包装类是Integer。所以想当然的传入了Integer.class参数。运行测试的时候,报【java.lang.NoSuchMethodException 】错误。
发生原因: 参数的类型一定要和调用方法的参数类型一致。如果方法的参数类型是基本类型,可以传【基本类型.class】。
解决方案: 将Integer.class修改为int.class后,测试顺利通过。
通过查找api,发现在class类中有如下一段话:基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。
引用文章地址或网址:
http://junit-addons.sourceforge.net/
再发防止:无
分享到:
相关推荐
与开发人员在测试组环境多次重复以上步骤,发现11群的计次表话单有时正常,有时其出中继群号就为一个随机值,发生异常的频率比较高。为什么其它群的话单正常,唯独11群不正常呢?11群是四个群中最小的群,其中继计...
在标题提到的"PortClass.zip"压缩包中,我们有一个名为"PortClass"的文件,它很可能是一个实现了串口通讯功能的C#类库。下面,我们将深入探讨C#中的串口通信以及如何编写这样的类。 串口通信,也称为串行通信,是一...
在IT行业中,"附加到进程"是一个常见的调试和监控技术,尤其在软件开发和系统分析中扮演着重要角色。在C#编程环境下,通过利用.NET Framework提供的API,开发者可以实现这个功能。以下是对"附加到进程源码C#实现"这...
在这个例子中,`AtapiDevice`类封装了`DeviceIoControl`函数的调用,`GetHddInfo`方法用于获取指定硬盘(如第一个硬盘,驱动器号0)的信息,包括模块型号、固件版本、序列号和容量。结构体`HardDiskInfo`用于存储...
对于串口通信应用,我们需要设计一个界面,包含串口号选择、波特率设置等控件,并添加发送和接收数据的功能。 1. 用户界面设计:使用XAML创建串口配置区域,包括下拉框选择串口号,文本框设定波特率,以及按钮用于...
Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、系统和服务。JMX提供了一种灵活的框架,使得开发者可以创建、注册和管理管理对象(MBeans),这些对象代表了应用程序的各个...
首先,我们需要定义一个类,该类包含我们要通过SOAP公开的方法。例如: ```php class MyService { function getCustomerDetails($customerId) { // 从数据库获取客户详细信息的逻辑 } } $server = new Soap...