关于java中“使用了未经检查或不安全的操作有关详细信息,请使用 ——X临潼:unchecked重新编译”

Posted 小楼夜听雨QAQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中“使用了未经检查或不安全的操作有关详细信息,请使用 ——X临潼:unchecked重新编译”相关的知识,希望对你有一定的参考价值。

今天看《算法 第4版》排序章节时,发现了一个了一个小问题。先贴一下代码:

 1 public class Selection{
 2      public static void main(String[]args){
 3          Integer[]a={3,5,7,3,8,27,679,8,564,23};
 4          sort(a);
 5          show(a);
 6      }
 7      public static void sort(Comparable<>[]a){
 8          for(int i=0;i<a.length-1;i++){
 9              int min=i;
10              for(int j=i+1;j<a.length;j++){
11                  if(less(a[j],a[min]))
12                      min=j;
13              }
14              exch(a,i,min);
15          }
16      }
17      private static boolean less(Comparable v,Comparable w){
18          return v.compareTo(w)<0;
19      }
20      private static void exch(Comparable[]a,int i,int j){
21          Comparable t=a[i];
22          a[i]=a[j];
23          a[j]=t;
24      }
25      private static void show(Comparable[]a){
26          for(int i=0;i<a.length;i++){
27              System.out.print(a[i]+"  ");
28          }
29          System.out.println();
30      }
31 }

直接编译会提示:

 

但是已经生成字节码文件(.class),说明编译通过了,运行后也能得出正确答案。

经过查阅,是没有使用泛型,comparable后面加上<Integer>,但是本题为了保持sort函数的复用性,还是不加比较好。

还有值得注意的一点是,定义数组时不能使用(int,double,string)等,而应该使用(Integer,Double,String),否则向Comparable转化的时候会出错。

 

以上是关于关于java中“使用了未经检查或不安全的操作有关详细信息,请使用 ——X临潼:unchecked重新编译”的主要内容,如果未能解决你的问题,请参考以下文章

关于java中static的应用及一种常见错误

关于JAVA 中的DOM操作

关于java中日期转化的问题

Swing:关于Java界面编程的第一课,如何正确的处理界面中的线程

java 关于继承中的super() 方法

关于java方法调用