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 list = new ArrayList();
代码如下:
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 list = new ArrayList();
list.add("中");
System.out.println(list);
}
}
 但具体的原因是什么呢?有待考查。








你可能感兴趣的:(java 编译时报错:使用了未经检查或或不安全的操作)