我们在运行时遇到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.
答案 0 :(得分:4)
JRE是否在ExpressionEvaluator实例化期间检查是否存在类JEP?
当然,因为当JVM创建ExpressionEvaluator的实例时,它会执行父构造函数