Java使用通配符导入后限定重名类使用是否合规?有无官方依据?
同名类导入与限定使用的合规性说明
这种写法是完全合规且被Java语法允许的。
当包A和包B都包含类C,但其他内容大多不重叠时,使用import A.*;和import B.*;批量导入两个包的所有类是可行的——只要在使用类C时,通过A.C或B.C的全限定类名明确指定归属,就能避免编译冲突。对于两个包中互不重叠的其他类,依然可以直接用类名调用,无需额外限定。
关于官方规范的说明:
Java语言规范中明确覆盖了这种场景。规范指出,当多个导入的包中存在同名类型时,如果没有通过单个类型导入语句(比如import A.C;)指定优先使用的类,那么在使用该同名类型时必须通过全限定类名来明确引用,否则会触发编译错误。而示例中这种主动用包名限定同名类的写法,完全符合规范要求,属于合法的编码方式。
内容的提问来源于stack exchange,提问作者user129393192
相关产品推荐
相关产品推荐

