gpt4 book ai didi

Java 在泛型中使用静态声明

转载 作者:行者123 更新时间:2023-11-29 10:19:54 25 4
gpt4 key购买 nike

我对以下内容感到困惑:

我想做的事:

public class MyGenericClass<SomeType> extends SomeMoreAbstractClass<SomeType>{
private Node<SomeType> beginNode;
private static final Node<SomeType> NOT_FOUND = null;

private static class Node<SomeType>{
//class definition here
}
}

即我想使用 NOT_FOUND在代码中检查 null

我收到错误 Cannot make a static reference to the non-static type AnyType
在我声明的行中 private static final Node<SomeType> NOT_FOUND = null;

我怎样才能解决这个问题?我更喜欢将它用作类变量而不是实例变量

最佳答案

您需要删除 static修饰符。根据定义,泛型与具体对象耦合。不可能有 static (= 所有对象都相同)具有通用参数的成员。

不要忘记 SomeType当您实例化对象时,它只是您使用的任何类的占位符。 (像这样:MyGenericClass<Integer> x = new MyGenericClass<Integer>();)

关于Java 在泛型中使用静态声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356981/

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