欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

莫名的java.lang.VerifyError错误!

程序员文章站 2022-07-12 23:50:33
...
测试例子:
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版本也一致
郁闷,这个问题折腾了我一下午...