莫名的java.lang.VerifyError错误!
程序员文章站
2022-07-12 23:50:33
...
测试例子:
initialize是通过Reflect获得指定类所需方法存储到Hashtable
实现如下
TestDAO类
以上代码在Eclipse写的工具类,测试没问题,但在Jbuilder2006用该工具类测试有以下怪现状:
1)在Jbuilder开发环境测试出现java.lang.VerifyError
//Exception in thread "main" java.lang.VerifyError: (class: example/TestDAO, method: getShowNum signature: ()Lcom//util/ComOutput;) Incompatible object argument for function call
2)当getShowNum()方法直接return null;测试通过
2)自己在Eclipse测试的时候完全没问题
3)JDK版本也一致
郁闷,这个问题折腾了我一下午...
public class DaoAgent extends BaseDaoAgent{ public DaoAgent(){ this.initialize(TestDAO.class); } public static void main(String[] args){ DaoAgent agent=new DaoAgent(); }
initialize是通过Reflect获得指定类所需方法存储到Hashtable
实现如下
protected void initialize(Class clazz) { try { if (ComDAO.class.isAssignableFrom(clazz)) { Object instance = ReflectUtils.objectInstance(clazz); Method[] methods = instance.getClass().getMethods(); for (int i = 0; i < methods.length; i++) { if(ComOutput.class.isAssignableFrom(methods[i].getReturnType())){ daoMapping.put(methods[i].getName(), instance); } } } else { throw new SystemException("初始化异常,类{0}必须继承于ComDAO!",new String[]{clazz.getName()}); } } catch (Exception e) { throw new SystemException("初始化异常",e); } }
TestDAO类
public class TestDAO extends ComDAO { ... public ComOutput getShowNum() throws Exception{ .... } ...
以上代码在Eclipse写的工具类,测试没问题,但在Jbuilder2006用该工具类测试有以下怪现状:
1)在Jbuilder开发环境测试出现java.lang.VerifyError
//Exception in thread "main" java.lang.VerifyError: (class: example/TestDAO, method: getShowNum signature: ()Lcom//util/ComOutput;) Incompatible object argument for function call
2)当getShowNum()方法直接return null;测试通过
2)自己在Eclipse测试的时候完全没问题
3)JDK版本也一致
郁闷,这个问题折腾了我一下午...