java 編譯時報錯:使用了未經檢查或或不安全的操作
阿新 • • 發佈:2019-02-17
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);
}
}
但具體的原因是什麼呢?有待考查。
修正方法有兩種: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>();