[英]What does a static import of star from a static inner class do?
我正在查看Functional Java中List .map的源代碼,發現它正在使用某個名為Buffer
類,但是在任何地方都找不到該類,然后我查看了導入並意識到它是一個內部類。 但是導入行看起來很有趣:
import static fj.data.List.Buffer.*;
它有什么作用? 為什么要從自身導入?
import static fj.data.List.Buffer.*
將Buffer
所有靜態成員導入范圍。 否則,對文件中Buffer
靜態成員的所有引用(從Buffer
內部進行的引用除外)都必須以Buffer.
為前綴Buffer.
。
代替這個:
final Buffer<B> bs = Buffer.empty();
可以將其寫在文件中的任何位置:
final Buffer<B> bs = empty();
可以避免使用通配符。 他們本來可以編寫import static fj.data.List.Buffer.empty
然后從Buffer
為彼此使用的其他靜態成員編寫另一個import,但是可以說通配符在這里很好,因為它是從同一文件中導入的。
它正在導入fj.data.List.Buffer
內部的所有static
元素。 這樣,您只需要調用Something
而不是fj.data.list.Buffer.Something
。
更多信息:
這意味着將導入所有靜態字段和方法。 並且可以在導入類時不帶類名前綴的情況下訪問它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.