Java 使用未经检查或不安全的操作,使用-Xlint重新编译
我已经处理这个问题一周了,虽然我找到了一些答案,但似乎没有一个能解决我程序的问题 我一直收到这样的信息:Java 使用未经检查或不安全的操作,使用-Xlint重新编译,java,class,Java,Class,我已经处理这个问题一周了,虽然我找到了一些答案,但似乎没有一个能解决我程序的问题 我一直收到这样的信息: Note: Triangle.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 代码如下: import java.util.*; public class Triangle { public double a; public double b
Note: Triangle.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
代码如下:
import java.util.*;
public class Triangle
{
public double a;
public double b;
private double c;
private ArrayList btsarr;
private static int numMade = 0;
public Triangle()
{
this.a = 3;
this.b = 4;
this.c = 5;
this.btsarr = new ArrayList();
this.btsarr.add(this.c + ""); //adding it as a String object
Triangle.numMade++;
}
public Triangle(double x1, double x2, double x3)
{
this.a = x1; //specs say no data validation necessary on parameters
this.b = x2;
this.c = x3;
this.btsarr = new ArrayList();
this.btsarr.add(this.c + "");
Triangle.numMade++;
}
public void setC(double x)
{
if (x <= 0)
{
System.out.println("Illegal, can't set c to 0 or negative");
}
else
{
this.c = x;
this.btsarr.add(this.c + "");
}
}
public double getC()
{
return this.c;
}
public void showAllCs()
{
System.out.println(this.btsarr);
}
public boolean isRightTriangle()
{
if (this.a*this.a + this.b*this.b == this.c*this.c)
return true;
else
return false;
}
public static int getNumMade()
{
return Triangle.numMade;
}
}
import java.util.*;
公共阶级三角
{
公共双a;
公共双b;
私人双c;
私人ArrayList btsarr;
私有静态int numMade=0;
公共三角()
{
这个a=3;
这个b=4;
这个c=5;
this.btsarr=新的ArrayList();
this.btsarr.add(this.c+“”);//将其作为字符串对象添加
Triangle.numMade++;
}
公共三角形(双x1、双x2、双x3)
{
this.a=x1;//规范说不需要对参数进行数据验证
这个。b=x2;
这个。c=x3;
this.btsarr=新的ArrayList();
this.btsarr.add(this.c+);
Triangle.numMade++;
}
公共无效setC(双x)
{
如果(x问题是您没有为ArrayList指定类型,因此没有编译时检查您是否正在向字符串ArrayList中插入整数。因为这将是一个“不安全的操作”,您会收到警告
要修复此问题,请将private ArrayList btsarr;
替换为private ArrayList btsarr;
并将this.btsarr=new arrarylist();
替换为this.btsarr=new ArrayList();
通常,在实例化ArrayList和HashMap(或任何其他Java集合)时,您应该始终指定要保存的对象类型。这些只是警告。编译成功。
你可以毫无问题地运行你的程序
如果要抑制此类警告,请使用下面的注释
@SuppressWarnings("unchecked") //above the method definition.
请阅读上的Java教程以获得一些基本帮助。警告不应该表示在某一点上可能出现错误吗?如果没有后果,那么为什么要记录警告?