--source code
  //File DirList.java
  
  import java.io.*;
  import java.util.*;
  
  class AlphabeticComparator implements Comparator {
    public int compare(Object o1, Object o2) {
      String s1=(String)o1;
      String s2=(String)o2;
      return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
  }
  
  public class DirList {
    public static void main(final String[] args) {
      File path=new File(".");
      String[] list;
      if (args.length==0)
        list=path.list();
      else
        list=path.list(new FilenameFilter() {
          public boolean accept(File dir, String n) {
            String f=new File(n).getName();
            return f.indexOf(args[0])!=-1;
          }
        });
      Arrays.sort(list, new AlphabeticComparator()); //warning contained
      for (int i=0; i<list.length; i++)
        System.out.println(list[i]);
    }
  }
  
--***************************2 warning************************
F:\Tom\JFile>javac DirList.java -Xlint
DirList.java:27: 警告: [unchecked] 未经检查的转换
找到: AlphabeticComparator
需要: java.util.Comparator<? super java.lang.String>
      Arrays.sort(list, new AlphabeticComparator()); //warning
                        ^
DirList.java:27: 警告: [unchecked] 方法调用未经检查:java.util.Arrays 中的 <T>sort(T[],java.util.Comparator<? super T>) 被应用于 (java.lang.String[],
AlphabeticComparator)
      Arrays.sort(list, new AlphabeticComparator()); //warning
                 ^
2 警告--****************************请教*********************************
1-请告诉我这到底什么意思
2-warning的存在但不影响程序执行,在软件中诸如此类warning是可以忽略吗,为什么不可以

解决方案 »

  1.   

    JDK5.0中加入了范型机制,
    你在声明容器时如果没有指定容器内的元素类型,就会警告
    不影响程序执行的
      

  2.   

    --
    感觉楼上说的上路,可以详细一些吗,比如怎么改写才没有warning
    --
    虽然不影响执行,但在软件中就真的可以忽略吗
      

  3.   

    public int compare(String o1, String o2)
      

  4.   

    class AlphabeticComparator implements Comparator<String> {
      public int compare(String o1, String o2) {
        String s1=(String)o1;
        String s2=(String)o2;
        return s1.toLowerCase().compareTo(s2.toLowerCase());
      }
    }
    ////////////////////
    应该这样 指明比较的类型,我上面的帖子忘记写Comparator<String> 不好意思