初學者常犯錯誤:自定義類名與 JDK 核心類重名(如 Long、String、Math),導致編譯器解析到錯誤類,報「找不到符號」或方法不存在錯誤。
import java.lang.*;
public class Long { // 錯誤:與 java.lang.Long 衝突
public static void main(String[] args) {
long b1 = 0x300L;
long b2 = 0200L;
System.out.println("b1:" + Long.toBinaryString(b1)); // 調用的是自定義 Long 類
System.out.println("b2:" + Long.toBinaryString(b2));
}
}
import java.lang.*; 引入 java.lang.Longpublic class Long,同包無需導入即可見Long 為本地類toBinaryString 靜態方法 → 編譯錯誤
public class LongDemo { // 改為非衝突名
public static void main(String[] args) {
long b1 = 0x300L;
long b2 = 0200L;
System.out.println("b1:" + Long.toBinaryString(b1)); // 正確調用 java.lang.Long
System.out.println("b2:" + Long.toBinaryString(b2));
}
}
public class Long {
public static void main(String[] args) {
long b1 = 0x300L;
System.out.println("b1:" + java.lang.Long.toBinaryString(b1)); // 強制指定
}
}
| 類別 | 常見衝突類名 |
|---|---|
| 基本類型包裝類 | Boolean, Byte, Character, Double, Float, Integer, Long, Short |
| 核心工具類 | Math, String, StringBuilder, StringBuffer, System, Thread, Runnable |
| 集合框架 | List, Set, Map, ArrayList, HashMap, HashSet, Collection, Collections |
| 異常體系 | Exception, RuntimeException, NullPointerException, IOException |
| IO/網絡 | File, InputStream, OutputStream, Socket, URL, URLConnection |