编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请使用-Xlink:unchecked重新编译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请使用-Xlink:unchecked重新编译相关的知识,希望对你有一定的参考价值。
文件名是:mystack.java
程序文件如下:
import java.util.*;
class mystack
private LinkedList mm=new LinkedList();
public void push(Object o)
mm.addFirst(o);
public Object pop()
return mm.removeFirst();
public Object peek()
return mm.getFirst();//返回栈顶
public boolean empty()//是否是空栈
return mm.isEmpty();
public static void main(String[] args)
mystack my=new mystack();
my.push("yifang");
my.push("shuma");
my.push("ruanjianzu");
System.out.println(my.pop());
System.out.println(my.peek());
System.out.println(my.pop());
System.out.println(my.empty());
System.out.println(my.pop());
System.out.println(my.peek());
System.out.println(my.empty());
改成 private LinkedList<Object> mm=new LinkedList<Object>();
集合里面有个概念叫泛型。。。如果你不在后面声明放到容器里的类型,就会给出警告。不过还是可以编译通过的,要去除警告就在后面指定个类型。。追问
是不是这个要根据涉及的内容而更改为响应的东西?
刚刚查找到资料有的是加了的
改成 private LinkedList<Object> mm=new LinkedList<Object>();
试试看
Java中的使用了未经检查或不安全的操作
1。 javac -Xlint:unchecked MyMath.java检查不安全的操作
/***************************************************/
MyMath.java:29: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("1");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:30: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("2");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:31: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("3");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:32: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("4");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:33: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("5");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:34: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("6");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:35: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add("7");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:37: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
array.add(array);
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:68: 警告: [unchecked] 对作为原始类型ArrayList的成员的set(int,E)的调用未经过检查
array.set(3, "hahah");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:72: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(int,E)的调用未经过检查
array.add(5,"5a");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:87: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
list.add("1");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:88: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查
list.add("2");
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:91: 警告: [unchecked] 对作为原始类型ArrayList的成员的addAll(int,Collection<? extends E>)的调用未经过检查
array.addAll(1,list);
^
其中, E是类型变量:
E扩展已在类 ArrayList中声明的Object
MyMath.java:99: 警告: [unchecked] 对作为原始类型ArrayList的成员的retainAll(Collection<?>)的调用未经过检查
array.retainAll(list);
^
14 个警告
bogon:javaCode zyyt$ javac MyMath.java
MyMath.java:7: 错误: 需要class, interface或enum
@SuppressWarnings("unchecked");给出的解决方案
/***************************************************/
如此解决就可以了
类前面加@SuppressWarnings("unchecked")
@SuppressWarnings("unchecked")
public class MyMath{
}
以上是关于编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请使用-Xlink:unchecked重新编译的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 插件:InAppPurchasePlugin.java 使用未经检查或不安全的操作
java 使用了未经检查或不安全的操作呢?请使用-Xlint:unchecked 重新编译. 怎么解决?