我只是想做的就是从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是静态方法。