Java 如何从特定包/项目导入不明确的类

Java 如何从特定包/项目导入不明确的类,java,maven,import,pom.xml,ambiguity,Java,Maven,Import,Pom.xml,Ambiguity,我遇到了一个奇怪的情况,在两个maven项目(a&B)中定义了一个类“User.java”,它的包结构完全相同。 我的maven项目依赖于A和B。 然而,项目中的“User.java”有一个额外的字段。 我想指定并确保我总是使用项目A中的“User.java”。但不幸的是,它总是从项目B中选择 如何告诉编译器从特定/所需的项目导入类?我通常不会用“不要这样做”来回答问题,但在这种情况下,我会破例 这是一个非常糟糕的想法 正如已经指出的那样,您将受制于运行时类路径,您对该类路径几乎没有绝对控制权,

我遇到了一个奇怪的情况,在两个maven项目(a&B)中定义了一个类“User.java”,它的包结构完全相同。 我的maven项目依赖于A和B。 然而,项目中的“User.java”有一个额外的字段。 我想指定并确保我总是使用项目A中的“User.java”。但不幸的是,它总是从项目B中选择


如何告诉编译器从特定/所需的项目导入类?

我通常不会用“不要这样做”来回答问题,但在这种情况下,我会破例

这是一个非常糟糕的想法

正如已经指出的那样,您将受制于运行时类路径,您对该类路径几乎没有绝对控制权,特别是当有不同的人员负责配置和供应您的生产环境时

解决这一问题的时间是昨天。这本不应该被允许发生,继续这样做只会导致持续的头痛和未来难以解释的调试失败

让架构师参与,并且

  • 重命名两个
    User
    类,例如
    AccountingUser
    SalesUser
    。如果存在合法的两种用户,则不允许一个人保留
    用户
    ;或
  • 协调这两个定义,然后将其拉到自己的库中(以及任何公共支持代码),并使两个项目都依赖于它

  • 你不能。你要听任类加载器的摆布这真是个糟糕的主意。将两个定义协调为一个,并使其成为当前使用它的两个项目的依赖项。是的,我同意这一点。但我在想,如果有一种方法可以告诉我的系统,可能是maven,A的User.java会覆盖B的User.java。@JimGarrison是的,这真是个坏主意。开发人员/架构师应该考虑过这一点。是的,使A和B都依赖于C,比如说,谁拥有User.java,将解决这个问题。但这里的情况是,这两个组件由两个不同的团队拥有。如果他们同意的话,做任何改变都可能需要很长时间。我正在寻找一个解决办法,让我去。:D