我想导入并将语义网(owl)文件的类列入eclipse。我是新的日食,因此我可能犯了简单的错误,但在我的立场,它并不那么简单。在一些研究中,我发现了一个我在eclipse中使用过的代码。我public void testAddAxioms()
专门针对void
收到错误。代码如下:
public static void main(String[] args) {
File file = new File("file:c:/Users/DTN/Desktop/Final SubmissionFilteringMechanism_Ontology.owl");
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLDataFactory f = OWLManager.getOWLDataFactory();
OWLOntology o = null;
public void testAddAxioms() {
try {
o = m.loadOntologyFromOntologyDocument(Ont_Base_IRI);
OWLClass clsA = f.getOWLClass(IRI.create(Ont_Base_IRI + "ClassA"));
OWLClass clsB = f.getOWLClass(IRI.create(Ont_Base_IRI + "ClassB"));
OWLAxiom ax1 = f.getOWLSubClassOfAxiom(clsA, clsB);
AddAxiom addAxiom1 = new AddAxiom(o, ax1);
m.applyChange(addAxiom1);
for (OWLClass cls : o.getClassesInSignature()) {
EditText edit = (EditText) findViewById(R.id.editText1);
edit.setText((CharSequence) cls);
}
m.removeOntology(o);
} catch (Exception e) {
EditText edit = (EditText) findViewById(R.id.editText1);
edit.setText("Not successfull");
}
}
}
答案 0 :(得分:3)
您无法在另一个方法中声明方法。这基本上就是你在main
内做的事情。
将testAddAxioms
的声明移至main
之外,如下:
public static void main(String[] args) {
// code omitted for brevity
}
public void testAddAxioms() {
// code omiited for brevity
}
答案 1 :(得分:1)
要调用testAddAxioms()
方法,您需要先在main()
方法之外声明它。它可以在同一个班级,也可以在新班级。
public class YourClass {
public static void main(String[] args) {
File file = new File("...");
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLDataFactory f = OWLManager.getOWLDataFactory();
OWLOntology o = null;
// removed your method from here
}
public void testAddAxioms() {
...
}
}
要调用它(从您放置它的同一个地方),您必须更改其声明以接受您发送给它的类型:
public void testAddAxioms(OWLOntology o, OWLOntologyManager m, OWLDataFactory f) { ...}
然后,在你的main()
方法中,实例化一个类的对象,以便能够调用它。
YourClass obj = new YourClass();
obj.testAddAxioms(o, m, f);
调用它的另一种方法是声明方法static:
public static void testAddAxioms(OWLOntology o, OWLOntologyManager m, OWLDataFactory f) { ...}
然后您不需要创建任何对象,只需调用:
testAddAxioms(o, m, f);
但是你应该仔细检查你的代码。您声明File file
但未使用它。在初始化传递给方法的对象时,可能需要将它传递给某个方法或构造函数。如果你在方法中需要它,你将不得不为它添加一个额外的参数。