我想做的只是从 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 是静态方法。
关于java - 为什么我无法在 Java 中实例化扩展类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12947031/