Java 从静态内部类静态导入star做什么?

Java 从静态内部类静态导入star做什么?,java,syntax,import,scope,Java,Syntax,Import,Scope,我查看了Functional Java中.map的源代码,发现它使用了一个名为Buffer的类,但在任何地方都找不到该类,然后我查看了导入,发现它是一个内部类。但进口线看起来很有趣: import static fj.data.List.Buffer.*; 它有什么作用?为什么要从自身导入?这意味着所有静态字段和方法都将被导入。并且在导入类时可以不使用类名前缀来访问它们。这意味着将导入所有静态字段和方法。并且在导入类时可以不使用类名前缀来访问它们。它正在导入fj.data.List.Buffe

我查看了Functional Java中.map的源代码,发现它使用了一个名为
Buffer
的类,但在任何地方都找不到该类,然后我查看了导入,发现它是一个内部类。但进口线看起来很有趣:

import static fj.data.List.Buffer.*;

它有什么作用?为什么要从自身导入?

这意味着所有静态字段和方法都将被导入。并且在导入类时可以不使用类名前缀来访问它们。

这意味着将导入所有静态字段和方法。并且在导入类时可以不使用类名前缀来访问它们。

它正在导入
fj.data.List.Buffer中的所有
静态
元素。通过这样做,您只需要调用
Something
,而不是
fj.data.list.Buffer.Something

更多信息:


它正在导入
fj.data.List.Buffer中的所有
静态
元素。通过这样做,您只需要调用
Something
,而不是
fj.data.list.Buffer.Something

更多信息:


导入静态fj.data.List.Buffer.
缓冲区的所有静态成员导入范围。否则,文件中对
Buffer
静态成员的所有引用(从
Buffer
内部进行的引用除外)都需要以
Buffer作为前缀。

与此相反:

final Buffer bs=Buffer.empty()

可以在文件中的任何位置写入:

final Buffer bs=empty()


可以避免使用通配符。他们可以改为编写
import static fj.data.List.Buffer.empty
,并从
Buffer
为他们使用的每个其他静态成员进行另一次导入,但是可以说,通配符在这里是可以使用的,因为它是从同一个文件导入的。

导入静态fj.data.List.Buffer.
Buffer的所有静态成员导入范围。否则,文件中对
Buffer
静态成员的所有引用(从
Buffer
内部进行的引用除外)都需要以
Buffer作为前缀。

与此相反:

final Buffer bs=Buffer.empty()

可以在文件中的任何位置写入:

final Buffer bs=empty()


可以避免使用通配符。他们可以改为编写
import static fj.data.List.Buffer.empty
,并从
Buffer
为他们使用的每个其他静态成员进行另一次导入,但是可以说,通配符在这里没有问题,因为它是从同一个文件导入的。

它导入了
fj.data.List.Buffer中的所有
static
元素。通过这样做,您只需要调用
Something
而不是
fj.data.list.Buffer.Something
。它将导入
fj.data.list.Buffer
中的所有
静态
元素。通过这样做,您只需要调用
Something
,而不是
fj.data.list.Buffer.Something