我在名为Scorer.java
的类中有一个列表对象,我想在另一个名为aLinks
的类中导入bLinks
和MyParser.java
个对象以获得打印{{1}和aLinks.size()
我试图先导入类名,然后调用该对象,但我不能这样做。你能告诉我如何将列表对象从类导入到另一个吗?以下是课程:
我的bLinks.size()
:
Scorer.java
我的其他课程 public class Scorer {
public static List<LinkNode> score(LinkNode sourceLink, List<LinkNode> links){
List<LinkNode> aLinks = new LinkedList<>();
List<LinkNode> bLinks = new LinkedList<>();
for (LinkNode link : links) {
if(isbLink(sourceLink, link)) {
bLinks.add(link);
} else {
aLinks.add(link);
}
}
MyParser.java
答案 0 :(得分:2)
您必须在public
类
static
和Scorer
public class Scorer {
public static List<LinkNode> aLinks = new LinkedList<>();
public static List<LinkNode> bLinks = new LinkedList<>();
public static List<LinkNode> score(LinkNode sourceLink, List<LinkNode> links){
for (LinkNode link : links) {
if(isbLink(sourceLink, link)) {
bLinks.add(link);
} else {
aLinks.add(link);
}
}
}
}
然后在MyParser
类中,调用class_name。(dot)static_variable。
然后在MyParser
课程中尝试此操作:
System.out.println(Scorer.aLinks.size()+ " " + Scorer.bLinks.size());
答案 1 :(得分:2)
如果课程位于不同的包中,则需要公开连接。但是您还需要将其设置为静态并将其转换为类
的字段public class Scorer {
public static List<LinkNode> aLinks = new LinkedList<>();
然后您可以Scorer.alinks
答案 2 :(得分:2)
致电
scorerInstance
其中aLinks
是MyScorer的一个实例。您应该在bLinks
类中添加MyScorer
和 public List<LinkNode> getALinks() {
return aLinks;
}
public List<LinkNode> getBLinks() {
return bLinks;
}
的getter,如下所示:
{{1}}
答案 3 :(得分:1)
首先,aLinks
和bLinks
应该是Scorer
类的成员,不应该在类的方法中声明。
像这样:
public class Scorer {
public List<LinkNode> aLinks = new LinkedList<>();
public List<LinkNode> bLinks = new LinkedList<>();
}
其次,您必须在Scorer
课程中获得MyParser
个对象。然后,您可以访问aLinks
和BLinks
。这应该是这样的:
Scorer myScorer = new Scorer();
System.out.println(myScorer.aLinks().size());
System.out.println(myScorer.bLinks().size());
应添加此内容以代替MyParser
课程中的评论部分。
第三,如果您的score
方法是静态的,那么您的Score
方法中也应该有score
类的实例。您可以将该实例传递给score
方法。像这样:
public static List<LinkNode> score(LinkNode sourceLink, List<LinkNode> links, Score myScore){
//myScore.aLinks or myScore.bLinks can be used here
}