我正在学习java中的列表,但是我很难像任何原始数据类型一样从方法返回它。我想做的就是返回节点列表,然后打印出它们的所有标签。我做错了什么?
import java.util.ArrayList;
import java.util.List;
public class TestingArrays
{
List<Node> myList1 = new ArrayList<Node>();
List<Node> myList2 = new ArrayList<Node>();
List<Node> myList3 = new ArrayList<Node>();
List<Node> myList4 = new ArrayList<Node>();
private Node Node1 = new Node("One", myList1);
private Node Node2 = new Node("Two", myList2);
private Node Node3 = new Node("Three", myList3);
private Node Node4 = new Node("Four", myList4);
public static void main(String arg[])
{
List<Node> nodeList = nodeArray();
for (int i = 0; i < nodeList.size(); i++)
{
System.out.println(nodeArray.get(i).label);
}
}
public List<Node> nodeArray()
{
List<Node> tempList = new ArrayList<Node>();
tempList.add(Node1);
tempList.add(Node2);
tempList.add(Node3);
tempList.add(Node4);
return tempList;
}
}
最佳答案
您不能从静态上下文中调用非静态方法。使方法nodeArray()
静态
。这将解决您的问题。
您也不能对非静态字段进行静态引用,即 Node1
、Node2
、Node3
、Node4
.所以也让它们静态
。
另外nodeArray.get(i).label
也是错误的,因为它应该是nodeList.get(i).label
。
关于java - 我在从 Java 中的方法返回列表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770477/