gpt4 book ai didi

java - 在java中扩展不可实例化的类

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:31 25 4
gpt4 key购买 nike

我阅读了 Joshua Bloch 的“Effective Java”,并从我们的应用程序中删除了“常量接口(interface)反模式”。诀窍是使用构造函数为私有(private)的不可实例化的 util 类,并将所有常量定义为“public static final”

我必须扩展这个常量实用程序类。我只能在将构造函数更改为 protected 时执行此操作。

有人可以提出更好的方法吗。

public class Constants {
private Constants () {} // Prevent instantiation
public static final String MyString = "MyString";
}

public class MyConstants extends Constants {
private MyConstants () {} // Compiler error : Implicit super constructor Constants() is not visible.
public static final String MySecondString = "MySecondString";
}

最佳答案

您通常不应该扩展这些常量类。您能否为我们提供更具体的示例来说明您正在尝试做什么?

通常,当常量相关时,您希望将它们组合在一起,例如,特定功能组件的数学常量或配置参数名称。

如果常量真的相关,是否可以将它们添加到原始类中?或者,您是否有任何理由不能为您的常量创建一个单独的类?

关于java - 在java中扩展不可实例化的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2033415/

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