Ich benutze ANTLR4, um meine grammer und OWLAPI zu analysieren, um auf Ontologien zu arbeiten. Da ich die Listener-Klasse verwende, kann ich den Rückgabetyp nicht ändern. Hier ein Beispiel:Java verschiedene Rückgabetyp in einer Funktion in Bezug auf die Header-Methode
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);
}
Das ist schrecklich, da das einzige, was ich zurückkehren kann ein Ausdruck ist, aber ich bin daran interessiert, einen Rückgabetyp zu schaffen, die boolean ist (in diesem Beispiel), nicht nur ein Druck, dass ich kann nicht verwalten. Es gibt keine Möglichkeit, den Rückgabetyp void zu ändern, weil der Parser abstürzt. Haben Sie also spezielle Vorschläge, um mit dieser Art von Situation umzugehen?
können Sie eine boolean Variable deklarieren? – haifzhan
Ja. Ich habe gerade eine schöne Lösung gefunden, die eine boolesche statische Variable deklariert und sie außerhalb dieser Funktion (und Klasse) aufruft. – user840718