gpt4 book ai didi

java - 静态导入的工作

转载 作者:行者123 更新时间:2023-11-30 07:22:42 25 4
gpt4 key购买 nike

我正在上的是两个这样的类(class)。

public class Class1 {

public static void staticMethod1(){}

public static void staticMethod2(){}

public static void commonStaticMethod(){}

}

和第 2 类一样

import static Class1.*;

public class Class2 {

public static void commonStaticMethod(){}

}

令我惊讶的是,它的编译没有任何错误,甚至没有警告。那么静态导入是如何避免重载的呢?

最佳答案

静态导入不会重载。它们只是语法糖,可以缩短其他类静态方法的使用时间。

也就是说,当调用的方法在当前上下文中不可用时,它会检查静态导入以查看是否存在匹配的静态方法。

因此 staticMethod() 将扩展为 SomeOtherClass.staticMethod()

在您的特定情况下,没有冲突,因为您没有尝试调用 commonStaticMethod。如果您这样做,编译器要么提示有歧义,要么默认使用当前类中的静态方法(我不确定是哪个——我不在静态导入中使用 *)。但这是您自己可以轻松检查的事情。

关于java - 静态导入的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com