2017-02-23 25 views
0

的印刷内容我有这个变量的Java文件,并且应该有它的字符串内容: 使用和>在Java中

private Set<Set<MyAxiom>> explanations;

我读了集是某种类型的集合数据(应该是MyAxiom,我想),但无法找到如何访问它们,我需要盖章。

我试图找回这些解释有一个get收益法

public Set<Set<OWLAxiom>> getExpl(int index) { 
    return this.explanations(index); 
} 

类似的方法制定了其他正常的变量,但我认为一个Set需求为自己的命令,不是吗?顺便说一下,这是一套集合。我觉得它非常复杂。我会很高兴知道如何处理它们,如果没有,将不胜感激文档链接。

编辑: 也许增加这对你的答案是有用的。该解释变量位于由jsp文件使用的javabean中。它在我用maven编译的webapp项目中。汇编是细跟下面这段代码,但是当我通过浏览器访问(使用Tomcat)我得到的错误The method getExpl() in the type BundleQueryManagement is not applicable for the arguments (int)

这是另一种方法我试过:

public Set<Set<OWLAxiom>> getExpl() { 
    return this.explanations; 
} 

甚至

public void getExpl() { 
    return this.explanations; 
} 
+0

你想要一个'设置'退回,或'公理'? –

+0

据我所见,只有你的方法返回this.explanation;' –

+0

[Set'的文档](https://docs.oracle.com/javase/8/docs/api /java/util/Set.html) – khelwood

回答

2

你的代码告诉你你有一个索引值,并且你想在你的Set中访问相应的值。但实际上,您无法使用索引访问Set,因为Set s是对象的无序集合。所以这是不可能的。

如果你想以这种方式访问​​你的元素,那么你应该考虑使用一个列表来代替。

参见:Why doesn't java.util.Set have get(int index)?


编辑

您可以递归打印所有元素是这样的:

public void printExpl(Set<Set<MyAxiom>> explanations) { 
    for (Set <MyAxiom> exp: explanations) { 
     for (MyAxiom obj: exp) { 
      System.out.println(obj.toString()); 
     } 
    } 
} 
+0

我想打印出整个元素组,这应该是String元素 – GondraKkal

+0

@GondraKkal请参阅编辑部分的答案。这将打印所有元素。确保正确地重写'toString()'方法。 –

+0

等待我需要返回所述元件,这样我就可以将使用此方法的JSP文件打印出来。它如何改变?另外,什么是exp和obj?我想了解越多,你在这里做什么 – GondraKkal