在模拟 Java 类型、命名空间时获取异常

问题描述

在模拟时获取 java.lang.IllegalAccessError

我的类构造函数看起来像。

public Acct(java.lang.class _javaType,javax.xml.namespace.Qname _xmlType,com.ibm.ws.webservices.engine.description.TypeDesc _typeDesc){
super(_javaType,_xmlType,_typeDesc);
}

我试过这样嘲讽。

public class AcctTest extends powermockito{
@Test
public void testMethod(){
        java.lang.class jType = PowerMock.mock(java.lang.class.class);
    javax.xml.namespace.Qname xml = PowerMock.mock(javax.xml.namespace.Qname.class);
    com.ibm.ws.webservices.engine.description.TypeDesc Desc = PowerMock.mock(com.ibm.ws.webservices.engine.description.TypeDesc.class);
//Object creation to access constructor
}
}

异常: java.lang.IllegalAccessError: java.lang.classjava.lang.reflect.Constructor.newInstance(Constructor.java:423)

看起来它无法访问预定义的 java 类型。谢谢 有人可以指导,如何模拟这些对象吗?

解决方法

避免嘲笑Class

 java.lang.Class jType = java.lang.Class.class;

这就够了。