如何解决(非静态变量...)错误

时间:2014-05-01 21:31:07

标签: java

我有错误的问题(非静态变量,这不能从静态上下文引用)

**我无法发布图片,因为我需要10个声誉:(

我的代码解决了这个问题:

编写一个Java函数Sum2List,它获取两个相同大小的列表L1和L2,并返回包含列表L1和L2的相应节点内的数据总和的列表L.

这是整个代码,但由于上述错误,我无法对其进行测试

public class listNode {
    int data;
    listNode next;

    listNode(int d, listNode n){
       data = d;
       next = n;
    }
 }

public class list {
   listNode first;
}

public list Sum2List (list l1 , list l2){
    list l = new list();
    listNode lNode = new listNode(0,null);
    l.first = lNode;

    listNode p = l1.first;
    listNode q = l2.first;

    for (p = l1.first; p.next!=null; p=p.next,q=q.next){
        lNode.data = p.data + q.data;

        if (p.next != null)
            lNode.next = new listNode(0,null);
    }
    return l;
}


public static void main (String[] args){

    list l1= new list();
    listNode node4 = new listNode(4,null);
    listNode node3 = new listNode(3,node4);
    listNode node2 = new listNode(2,node3);
    listNode node1 = new listNode(1,node2);

    l1.first = node1;

    list l2= new list();
    listNode node8 = new listNode(8,null);
    listNode node7 = new listNode(7,node8);
    listNode node6 = new listNode(6,node7);
    listNode node5 = new listNode(5,node6);

    l2.first = node5;

    list l = Sum2List(l1,l2);

    for(listNode p = l.first; p.next !=null; p=p.next){
        System.out.println(p.data);
    }
}

1 个答案:

答案 0 :(得分:0)

public list Sum2List (list l1 , list l2){

这需要标记为static。如果没有该类的实例,则无法从静态方法调用实例方法。如果你只是想一想,你会发现它没有意义。实例方法属于类的单个实例,因此需要存在要调用的实例。