【发布时间】:2015-03-30 22:51:53
【问题描述】:
我遇到了:import static java.lang.Float.*;,注意static(实际上是import static java.lang.Math.*,但除此之外)。我以前从未见过,并认为它非常有用,Float.valueOf("1.234f"); 变成了valueOf("1.234f")。
但是当我也添加import static java.lang.Integer.*; 时,我收到一条错误消息:"reference to valueOf is ambiguous",因为这两个类都有那个(静态)方法。
没有办法解决吗?我只能在有限的时间内使用它,然后在某个地方模棱两可?
附注:
这种情况和为什么我们只能extend一个类有相同的背景吗,因为如果我们可以extend两个类,对于所有的静态字段等,命名可能会导致同样的问题?
【问题讨论】:
-
不要静态导入。
-
您可以根据需要进行静态导入,但如果引用不明确,则必须明确说明您引用的方法。
-
@LouisWasserman 这就是我的想法。旁注呢?
-
“有没有办法解决这个问题?” 是的:从不使用通配符导入。然后只导入你真正需要的东西。
-
@Tom 你的意思是
import static java.lang.Float.valueOf;“只有你真正需要的东西”