如何在另一个类中调用列表对象

时间:2015-05-01 15:01:58

标签: java object linked-list

我在名为Scorer.java的类中有一个列表对象,我想在另一个名为aLinks的类中导入bLinksMyParser.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

4 个答案:

答案 0 :(得分:2)

您必须在public

中将所需变量声明为全局变量staticScorer
 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)

首先,aLinksbLinks应该是Scorer类的成员,不应该在类的方法中声明。

像这样:

public class Scorer {
    public List<LinkNode> aLinks = new LinkedList<>();
    public List<LinkNode> bLinks = new LinkedList<>();
}

其次,您必须在Scorer课程中获得MyParser个对象。然后,您可以访问aLinksBLinks。这应该是这样的:

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
}