Java在函数中与标头方法的不同返回类型



我正在使用antlr4来解析我的语法和owlapi来研究本体。由于我正在使用侦听器类,因此无法修改返回类型。这里一个示例:

public void exitSubConcept(Parser.SubConceptContext ctx) {
    OWLClassExpression first = stack.pop();
    OWLClassExpression second = stack.pop();
    OWLSubClassOfAxiom s = factory.getOWLSubClassOfAxiom(second, first);
    if(reasoner.isEntailed(s))
    {
        System.out.println(s.toString() + "is entailed");
    }
    else
    {
        System.out.println(s.toString() + "is NOT entailed");
    }
    super.exitSubConcept(ctx);
}

这很糟糕,因为我唯一可以返回的是打印,但是我有兴趣提供一个布尔值的返回类型(在此示例中),而不仅仅是我无法管理的打印。无法修改返回类型void,因为解析器崩溃,所以您有任何特定建议可以处理这种情况吗?

您可以声明一个实例布尔值变量并使用 hasEntailed()获取布尔值(我正在使用hasentails来区分现有的isentailed()方法)

private boolean entailed = false;
public boolean hasEntailed(){
    return entailed;
}
public void exitSubConcept(Parser.SubConceptContext ctx) {
    OWLClassExpression first = stack.pop();
    OWLClassExpression second = stack.pop();
    OWLSubClassOfAxiom s = factory.getOWLSubClassOfAxiom(second, first);
    if(reasoner.isEntailed(s))
    {
        System.out.println(s.toString() + "is entailed");
        entailed = true;
    }
    else
    {
        System.out.println(s.toString() + "is NOT entailed");
        entailed = false;
    }
    super.exitSubConcept(ctx);
}

相关内容

  • 没有找到相关文章

最新更新