代码之家  ›  专栏  ›  技术社区  ›  Federico klez Culloca

解决包冲突

  •  1
  • Federico klez Culloca  · 技术社区  · 14 年前

    com.example1 包含 Hello 类(与其他类一起)。

    然后我们有另一个包裹 com.example2 你好

    现在让我们假设我们需要每一节课com.example1 还有学校的“你好”课com.example2

    import com.example1.*;
    import com.example2.Hello;
    

    在这种情况下,叫哪个?

    Hello hello = new Hello();
    

    或者这会导致编译错误吗?

    出于好奇,这只是一个理论问题。

    由于创建包是为了避免命名冲突,当两个包包含两个同名的类时会发生什么情况?

    3 回复  |  直到 14 年前
        1
  •  5
  •   Petar Minchev    14 年前

    它将给出一个编译错误。必须显式命名类- com.example2.Hello hello = new com.example2.Hello();

        2
  •  2
  •   Noel M    14 年前

    与其听天由命,不如在声明中明确说明。这是一个编译错误。

    类似的冲突经常发生在 java.util.List java.awt.List . 如果你是明确的,没有混乱。

        3
  •  0
  •   Dheeru Mundluru Naman    10 年前

    它不会给出其他用户所说的编译器错误。它将使用com.example2.Hello. 这是因为显式导入(com.example2.Hello)永远都有 优先 过*导入(com.example1.*).