来自第三方父类的NoSuchMethodError

时间:2011-11-25 17:06:05

标签: java

我们在运行时遇到NoSuchMethodError。我只是想知道我们是否收到此错误,因为在服务器的类路径中找不到父类,或者找到了类但是过时了。

我问这个问题的原因是,JRE是否在ExpressionEvaluator实例化期间检查是否存在类JEP,或者只检查调用哪个方法调用超类方法?

import org.nfunk.jep.JEP;

/** TODO Explain this class */
public class ExpressionEvaluator extends JEP {

    public ExpressionEvaluator() {
    }
...
...

客户端代码

public static boolean checkExpressionValidity(String ruleExpression) {
    ExpressionEvaluator evaluator = new ExpressionEvaluator(); // instantiation
    if (!(ruleExpression.contains(">") || ruleExpression.contains("<")
            || ruleExpression.contains("==") || ruleExpression.contains("!="))) {
        return false;
    }

    String ruleExpressionForValidation = ruleExpression.replaceAll(
            REGEX_FUNCTION_FINDER, "1");
    evaluator.parseExpression(ruleExpressionForValidation); // super class method.

1 个答案:

答案 0 :(得分:4)

  

JRE是否在ExpressionEvaluator实例化期间检查是否存在类JEP?

当然,因为当JVM创建ExpressionEvaluator的实例时,它会执行父构造函数