在 IntelliJ 中禁用通配符導入
一、概述
在 Java 開發中,正確的 import 語句對於保持代碼的可讀性和避免潛在的衝突很重要。
IntelliJ IDEA 是一種流行的 Java 集成開發環境 (IDE)。因此,在本快速教程中,我們將探討如何在 IntelliJ 中禁用通配符導入。
2. IntelliJ 的優化導入功能
IntelliJ 附帶“優化導入”功能,可以自動重新排列導入語句,例如應用預定義樣式、調整順序、清理未使用的導入等。
我們可以通過菜單項對當前 Java 文件應用“優化導入”: Code -> Optimize imports
:
當然,我們也可以使用快捷方式優化當前 Java 文件中的導入。
3. IntelliJ 中的導入設置
通配符導入是導入包內所有類的常見做法,例如import java.util.*
。通配符導入可以節省擊鍵次數。但是,它們可能會引入歧義並使代碼更難理解。
要禁用通配符導入,我們打開Settings
彈出窗口: File -> Settings
(或 macOS 上的“ Preferences
”) .
然後,在Settings
窗口中,我們導航到 Java imports 設置選項卡: **Editor -> Code Style -> Java ->Imports** :
在“ Imports
”選項卡下,三個設置會影響 IntelliJ 是否會在 Java 文件中使用通配符導入:
接下來,讓我們仔細看看它們。
4.通用開關——“ Use single class import
”
第一個複選框“ Use single class import
”是一個通用開關,用於指定我們是否要在 Java 源文件中啟用通配符導入。如果我們不勾選這個選項,IntelliJ 總是使用通配符導入。
假設一個 Java 文件只有兩個 import 語句:
import java.time.Instant;
import java.util.ArrayList;
如果我們不勾選“ Use single class import
”選項,讓 IntelliJ 為我們“Optimize Imports”
。上面的兩個導入變成了這個:
import java.time.*;
import java.util.*;
因此,如果我們想在 Java 源文件中禁用通配符導入,我們應該選中“ Use single class import
”選項。
5.“ Class count to use import with '*'
”選項
接下來,讓我們看一下“ Class count to use import with '*'
”配置。我們可以將此選項的值設置為所需的數字。當導入類的數量超過給定值時,IntelliJ 會自動從顯式導入切換到通配符導入。
考慮我們的一個 Java 文件中的導入:
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
假設我們在 IntelliJ 中有這兩個設置:
- “
Use single class import
”選項——選中 - “
Class count to use import with '*'
” – 5
現在,如果我們要求 IntelliJ 自動優化導入,我們將看到以下內容:
import java.time.Instant;
import java.util.*;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
如我們所見,由於我們從java.util
包中導入了五個以上的類,導入語句變為java.util.*
。
所以,如果我們想禁用通配符導入,我們可以將“ Class count to use import with '*'
”的值設置為一個很大的數字,比如100
甚至999
。
6. 例外:“ Packages to Use Imports with '*'
”表
最後,讓我們看一下“ Packages to Use Imports with '*'
”表。該表允許我們添加始終使用通配符導入的包,無論我們是否選中了“ Use single class import
”選項,或者我們為“ Class count to use import with '*'
”配置設置了哪個數字。
假設我們在 IntelliJ 中有以下設置:
- “
Use single class import
”選項——選中 - “
Class count to use import with '*'
” –100
-
“Packages to Use Imports with '*”'
–java.util.*
(帶子包)
現在,如果我們優化上一節中 Java 文件的導入,我們將得到以下內容:
import java.time.Instant;
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
由於我們在“ Packages to Use Imports with '*”
表中有“ java.util.*”
條目,IntelliJ 對java.util
包中的任何類使用通配符導入。
因此,如果我們想完全禁用通配符導入,該表應該為空。
七、結論
在本文中,我們討論瞭如何設置三個主要配置選項以在 IntelliJ 中完全禁用 Java 文件中的通配符導入:
- “
Use single class import
”選項——勾選該選項 - “
Class count to use import with
'*'
” –100
(或 999) -
Packages to Use Imports with
'*'
的導入的包——將此表留空