当前位置: 首页 > 知识库问答 >
问题:

Java-两个类,相同的名称,相同的包,但在不同的文件夹

宗冠宇
2023-03-14

我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。

理论上,我认为这是可能的,因为Java编译器在构建输出时确实维护了目录结构。所以在运行时,如果在类中调用了一个方法,Java可能会在任何一个文件中找到该方法。

这可能吗?我使用的是IntelliJ,当需要解析方法时,它似乎只允许我选择一个类文件,但不能同时选择两个。

共有2个答案

干子瑜
2023-03-14

如果这些类位于不同的包中,可以通过添加限定符来实现。

@限定符(“yourClassQualifierName1”)

@限定符(“yourClassQualifierName2”)

斜烈
2023-03-14

不,这是不可能的。Java不会“寻找方法”,它会解决单个问题。按完全限定名初始化文件,在那里查找方法,如果不存在,则引发异常。您需要找到一种不同的方法将代码拆分为多个类。

 类似资料:
  • 问题内容: 我正在尝试仅将原始文件从一个目录复制到另一个目录,但是某些文件具有相同的名称…我正在尝试使用哈希来比较文件,如果其不在目录中发送并且名称相同,它到file_name.something。目前,我正在获取一些文件,并且具有相同名称的文件正在被覆盖…任何人都可以提出建议吗? 问题答案: 您将哈希与文件名进行比较。你需要类似的东西 计算目标文件夹中每个文件的哈希值。 此外,在当前版本中,您的

  • 问题内容: 我在这里已经读到,在Java中,具有相同名称但不同类型的两个变量可以在同一范围内共存。我的意思是这个 但是所有的Java IDE都不允许这样的代码。我想知道这样的代码在语法上是否正确,或者只是IDE不允许这样的代码防止歧义。 无论如何,这是网站的摘录 “如果幸运的话,您也许能够重新编译Jad的输出。 但是,Java VM对于变量命名的规则比Java语言本身更为宽松。例如,一个有效的类文

  • 但所有java IDE都不允许这样的代码。我想知道这样的代码在语法上是否真的正确,或者只是IDE不允许这样的代码来防止歧义。 总之,这里是从网站上摘录的 “如果你幸运的话,你也许可以重新编译JAD的输出。然而,Java VM对变量命名的规则比Java语言本身更宽松。例如,一个有效的类文件可以有几个名为'a'的变量,只要它们有不同的类型。如果你反编译这样的类,你得到的源代码将是无效的。 JAD通常会

  • 问题内容: 我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样: 这样做的问题是controllers和models目录包含很多文件,全部使用和。因此,我正在考虑将其拆分为: 凡在控制器包的用户文件中可能包含的文件,等等。 现在,我读到像或那样的软件包是不好的做法,但是我担心对这两个软件包进行命名可能不是一个好主意,因为它们是同一项目的一部分(即使它们位于不同的目录中

  • 问题内容: 我有一个Animal类和一个名为AnimalExtension的Animal扩展。 这两个类之间的唯一区别是AnimalExtension还有另一个实例变量叫做animalId。Animal没有此实例变量。 我也有自己的数据类型,想要对XML进行封送处理。此数据类型称为AnimalList。在AnimalList内,有一个Animals列表作为实例变量。 animalList可以包含A

  • 假设您有2个包,并且有名为-Test的公共类。 第一个包。测试 第二包测试 它们中的每一个都有实例变量-x。 在第一种情况下-int x=2; 在第二种情况下-int x=3; 我想导入FirstPackage。在第二个包内测试。测试并打印值为2的x。 我的代码: 但是输出是3。如何打印?