java - 如何确保类型参数不可变

标签 java generics

class Pair<A,B> {
    final A first;
    final B sec;

    Pair(A f, B s){
        this.first = f;
        this.sec = s;
    }
}

有没有办法确保 A 和 B 是不可变类型?

最佳答案

没有。没有办法将类型识别为不可变的,更不用说绑定(bind)了。

您可以创建一个标记接口(interface)(一个没有方法的接口(interface),例如 Serializable),在您的项目中使用它来识别不可变类,并让您的团队遵守它。

例如:

interface Immutable {}

class Pair<A extends Immutable, B extends Immutable> {
}

关于java - 如何确保类型参数不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666444/

相关文章:

c# - 如何在 C# 中实现某种程度的多态性?

java - 从 JDK8 升级到 JDK11 后奇怪的 java.lang.InstantiationException 和 java.lang.NoSuchMethodException

java - 在不分配类型的情况下扩展通用接口(interface)?

java - eclipse 编译器或 javac ("type parameters of T cannot be determined"中的错误)

java - Hibernate 中的 @onetomany 注释不正确

java - 如何在网址中隐藏端口号

java - SceneBuilder(由 gluon 提供)不显示导入的字体

java - 从 CSV 中检索 1 个值,然后将所有值单独添加到第一个值,无需列表

java - Opencsv - 如何获取仅在双引号外用逗号分隔的值,同时忽略双引号?

Haskell 反射 : does record have field?