Java 如果两个类具有相同的包语句,该怎么办

Java 如果两个类具有相同的包语句,该怎么办,java,Java,我遇到了一个问题,来自同一组拥有的两个不同包的两个类具有相同的名称和包语句 包1 方案2 如果我正在处理包1,但希望在包2中引用此Constants类,这可能吗?您将面临名称冲突。如果可能,请尝试输入包的全名。class_location不能在同一个包中重复类名 其中来自2个不同包的2个类 但它们不是两个不同的包。您对这两个包使用了相同的包名 要在包2中引用此常量类吗 使用以下任一选项: 不同的包名 新类的不同名称 由于明显的原因,您不能在同一个包中定义两个同名的类 Java中的包的目的是创建一

我遇到了一个问题,来自同一组拥有的两个不同包的两个类具有相同的名称和包语句

包1

方案2


如果我正在处理包1,但希望在包2中引用此Constants类,这可能吗?

您将面临名称冲突。如果可能,请尝试输入包的全名。class_location

不能在同一个包中重复类名 其中来自2个不同包的2个类

但它们不是两个不同的包。您对这两个包使用了相同的包名

要在包2中引用此常量类吗

使用以下任一选项:

不同的包名 新类的不同名称 由于明显的原因,您不能在同一个包中定义两个同名的类

Java中的包的目的是创建一个。重复的类名与该命名空间冲突

设计问题 包com.placeholder.constants.constants

这不是正确的包名。您已将类名混合到包名中。包应该是包com.placeholder.constants

您的交叉命名问题可能会导致您的类设计不太理想。你可能想暂停一下,看看更大的图景


如果有那么多常量要命名,我想知道其中是否有一些应该是枚举类型。看见提示:在Java 16及更高版本中,枚举可以在a方法中本地定义,这是定义为嵌套类或定义为单独类的新选择。

更改其中一个。顺便说一句,示例是用于此类演示目的的域名。所以,com.example.constants.使用多个类加载器是可能的,但我怀疑这是否值得这么麻烦。你为什么会有这样的结构?Als,为什么有一个名为…Constants的包也包含名为Constants的类?那是打字错误吗另外:来自两个不同的包-它们实际上使用相同的拆分包,但可能位于多个项目中,对吗?@Thomas不仅仅是:一个名为常量的包,包含一个名为常量的包,包含一个名为常量的类。您认为这些值是变化的还是不变的?这两个类的包声明也是相同的。所以在这里使用全名没有帮助。@Michael谢谢,修正了。
package com.placeholder.constants.Constants

public class Constants{}
package com.placeholder.constants.Constants

public class Constants{}