我只是想做的就是从LinkedList扩展一个类。这是我的代码:

  import java.util.*;

  class Test {

    public static void main( String [] args ) {

        OrderedLinkedList ol = new OrderedLinkedList();
    }

    public class OrderedLinkedList extends LinkedList<Integer> {

        public boolean add( Integer item ) {
            for (int i=0; i < size(); i++) {
                Integer itemOfList = get( i );
                if ( itemOfList.compareTo( item ) > 0 ) {
                    add( i, item );
                    break;
                }
            }
            return true;
        }
    }

}


但是,我收到此消息的编译错误:

Test.java:7: non-static variable this cannot be referenced from a static context
        OrderedLinkedList ol = new OrderedLinkedList();
                               ^
1 error


我相信除了实例化之外,我没有引用其他任何东西。

最佳答案

除非标记为静态,否则内部类对其外部类具有隐式引用。

您需要将内部类标记为静态以避免这种情况:

public static class OrderedLinkedList extends LinkedList<Integer> {


因此,编译器抱怨内部类没有Test的实例,因为main是静态方法。

07-27 20:02