2

静态导入是什么意思,例如:

import static com.example.foo.Suggestion;

如何定义这样的包以及使用静态导入有什么好处?

4

5 回答 5

8

import static意味着您可以在不使用类名的情况下引用静态值。

例如,考虑这三个类:

package com.example;
public class foo {
    public static int Suggestion = 5;
}
import com.example.foo;
public class b {
    // …
    int var = foo.Suggestion;
}
import static com.example.foo.Suggestion;
public class c {
    // …
    int var = Suggestion;
}
于 2013-01-08T06:13:15.847 回答
3

我觉得静态导入的优势超过了Constant Interface Pattern

通常我们使用接口作为常量,它由所有类实现,但如果你正在开发一个 API,这就像你在暴露你的实现细节。上面的wiki链接解释得很好。

但是使用static imports可以避免这种情况,并为常量接口 Anti-Pattern 提供了很好的解决方案。我将创建一个最终类,而不是常量接口模式,在该类中创建公共静态常量,并在需要常量的地方进行静态导入。

于 2013-01-08T06:18:17.050 回答
2

与普通导入声明相比,静态导入允许在不使用完整类名的情况下使用类的静态成员。

于 2013-01-08T06:20:34.150 回答
0

Java 中的静态导入允许您引用静态实体(方法、属性),而无需完全限定代码中的引用。它是语法糖。

于 2013-01-08T06:12:23.143 回答
0

您只能对静态字段和方法使用静态导入。您必须定义方法和

于 2013-01-08T06:18:05.303 回答