Sti*_*mus 1 java import implementation
首先,我不是一个Java人,但我发现表面上看起来与导入工作方式不一致的东西.
假设你有一个文件,在这个文件中你有你的主要功能,你也定义的类美孚,现在不同的实现的美孚也存在于一个包.假设您要在功能中使用这两个版本.
你不能从它的包中显式导入Foo,即import mypackage.Foo;
因为这会导致与文件中本地定义的类冲突,所以在编译时会生成错误.
你可以做的是导入整个包,即导入mypackage.*;
这将起作用,您可以使用完全限定名称访问Foo,使用简单名称将导致使用本地Foo.我看到的不一致是,前者生成错误(您导入了一个类,导入的唯一目的是能够使用简单名称而不是完全限定名称),后者甚至不会导致警告.
我原本以为这两种情况都会产生一个警告,即你可能正在使用错误的类,因为它在2个地方定义,或者import语句是多余的,因为简单名称的使用将解析为本地定义的类,而不是导入的一.
所以我的问题是:是否存在以这种方式实施的潜在原因?
是的,这是一个异常情况,我明白这一点.