1. 程式人生 > >java 編譯時報錯:使用了未經檢查或或不安全的操作

java 編譯時報錯:使用了未經檢查或或不安全的操作

import java.util.*; public class ListDemo  { public static void main(String[] args)  { @SuppressWarnings("unchecked") StringBuilder buf = new StringBuilder("美麗"); //字串生成器 buf.append("中");   // 輸出: 美麗中 buf.append("國");   //輸出:美麗中國 buf.insert(1,"達"); //輸出:美達麗中國 buf.insert(0,"歡迎"); //輸出:歡迎美達麗中國 System.out.println(buf); ArrayList list = new ArrayList();    list.add("中"); System.out.println(list); } } 編譯報錯:使用了未經檢查或或不安全的操作 注意: 要了解詳細資訊,請使用 -Xlint:unchecked 重新編譯。
修正方法有兩種:1,在main方法面前加@SuppressWarnings("unchecked") 程式碼如下: import java.util.*; public class ListDemo  { @SuppressWarnings("unchecked") public static void main(String[] args)  { StringBuilder buf = new StringBuilder("美麗"); //字串生成器 buf.append("中");   // 輸出: 美麗中 buf.append("國");   //輸出:美麗中國 buf.insert(1,"達"); //輸出:美達麗中國 buf.insert(0,"歡迎"); //輸出:歡迎美達麗中國 System.out.println(buf); ArrayList list = new ArrayList(); list.add("中"); System.out.println(list); } } 原因:JAVA是一門安全性比較高的語言,它在編譯之類要進行型別等一系列的檢查。如果你使用了註解就可以告訴編譯器不用檢查,這樣子就可以避過編譯時期間的安全檢查,這樣子的效率會提高 。但同時 安全性就大打折扣了。 第二種方法,就是採用泛型。ArrayList<String> list = new ArrayList<String>();
程式碼如下: import java.util.*; public class ListDemo  { //@SuppressWarnings("unchecked") public static void main(String[] args)  { StringBuilder buf = new StringBuilder("美麗"); //字串生成器 buf.append("中");   // 輸出: 美麗中 buf.append("國");   //輸出:美麗中國 buf.insert(1,"達"); //輸出:美達麗中國 buf.insert(0,"歡迎"); //輸出:歡迎美達麗中國 System.out.println(buf); //ArrayList list = new ArrayList(); ArrayList<String> list = new ArrayList<String>();
list.add("中"); System.out.println(list); } }  但具體的原因是什麼呢?有待考查。