java - 如果 2 个类具有相同的包语句怎么办
问题描述
我遇到了一个问题,其中来自 2 个不同包(由同一组拥有)的 2 个类具有相同的名称和包语句
套餐一
package com.placeholder.constants.Constants
public class Constants{}
套餐二
package com.placeholder.constants.Constants
public class Constants{}
如果我正在处理包 1 但想在包 2 中引用这个常量类,这甚至可能吗?
解决方案
不能在同一个包中重复类名
其中来自 2 个不同包的 2 个类
但它们不是两个不同的包。您为两者使用了相同的包名称。
想在包 2 中引用这个常量类
使用任一:
- 不同的包名
- 新班级的不同名称
出于显而易见的原因,您不能在同一个包中定义两个具有相同名称的类。
Java 中包的目的是创建一个命名空间。您重复的类名违反了该命名空间。
设计问题
package com.placeholder.constants.Constants
这不是一个正确的包名称。您已将类名混合到包名中。包应该是package com.placeholder.constants
.
你的这个交叉命名问题增加了你的类设计不是最优的可能性。您可能想暂停片刻,看看更大的图景。
如果你有那么多常量要命名,我想知道其中一些是否真的应该是enum
类型。请参阅Oracle 的教程。提示:在 Java 16 及更高版本中,可以在 a 方法中本地定义枚举——这是定义为嵌套类或定义为单独类的新选择。
推荐阅读
- windows - cmd 提示符未使用的代理设置
- sql - 如何编写 SQL 查询以将行映射到列?
- javascript - 使用 AWS API Gateway 在我的 AWS lambda 函数(将在 dynamo db 中存储数据)面临的前端问题
- c - 停留在标准输入读取直到 ^C 或 EOF,然后是“标准输入垃圾邮件”
- python - 英特尔 macOS Big Sur 上的 Homebrew pip 问题 5599
- java - 如何创建一个按下时改变颜色的小部件?
- javascript - 我将如何为这个涉及下载 json 文件的反应 js 代码编写单元测试?
- android - 当通知到达并且应用程序在后台没有用户交互时,如何在 React Native 中执行操作?
- matlab - 如何获得积分的上限?
- r - 在 R 中计算多项式核矩阵