Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用未经检查或不安全的操作,使用-Xlint重新编译_Java_Class - Fatal编程技术网

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教程以获得一些基本帮助。警告不应该表示在某一点上可能出现错误吗?如果没有后果,那么为什么要记录警告?