gpt4 book ai didi

java - 为什么我无法在 Java 中实例化扩展类的实例?

转载 作者:行者123 更新时间:2023-12-03 05:36:55 25 4
gpt4 key购买 nike

我想做的只是从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com