Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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 如何@Override Comparator使CellTable中的列基于整数而不是基于字符串(GWT)排序?_Java_Gwt - Fatal编程技术网

Java 如何@Override Comparator使CellTable中的列基于整数而不是基于字符串(GWT)排序?

Java 如何@Override Comparator使CellTable中的列基于整数而不是基于字符串(GWT)排序?,java,gwt,Java,Gwt,好的,我有一张桌子,上面有一张单子 No 1 2 5 10 20 然后它将不会像整数那样排序,而是像字符串一样排序。例:它的排序如下: columnSortHandler.setComparator(noColumn, new Comparator<String[]>() { @Override public int compare(String[] o1, String[] o2) { if (o1==o2) {

好的,我有一张桌子,上面有一张单子

No 1 2 5 10 20 然后它将不会像整数那样排序,而是像字符串一样排序。例:它的排序如下:

columnSortHandler.setComparator(noColumn, new Comparator<String[]>() {
        @Override
        public int compare(String[] o1, String[] o2) {
            if (o1==o2) {
                  return 0;
            }


            if (o1 != null) {

                return (o2 != null) ? o1[0].compareTo(o2[0]) : 1;
            }
            return -1;
        }
    });
No 1 10 2 20 5 不 1. 10 2. 20 5. 那就不对了

如此尝试:

 columnSortHandler.setComparator(noColumn, new Comparator<String[]>() {
        @Override
        public int compare(String[] o1, String[] o2) {
            if (o1==o2) {
                  return 0;
            }


            if (o1 != null) {

                return (o2 != null) ? Integer.parseInt(o1[0]).compareTo(Integer.parseInt(o2[0]) : 1;
            }
            return -1;
        }
    });
columnSortHandler.setComparator(noColumn,new Comparator(){
@凌驾
公共整数比较(字符串[]o1,字符串[]o2){
如果(o1==o2){
返回0;
}
如果(o1!=null){
返回(o2!=null)?Integer.parseInt(o1[0])。比较(Integer.parseInt(o2[0]):1;
}
返回-1;
}
});
但compareTo不适用于整数

所以我的问题是

如何@Override Comparator使单元格表中的列基于整数而不是基于字符串(GWT)排序?使用
Integer.valueOf()
,如下所示

 return (o2 != null) ? Integer.valueOf(o1[0]).compareTo(Integer.valueOf(o2[0])) : 1;
而不是

 return (o2 != null) ? Integer.parseInt(o1[0]).compareTo(Integer.parseInt(o2[0]) : 1; 
parseInt()返回原语int而不是包装整数类

无法对基元类型int调用compareTo(int)

有很多方法可以将
String
转换为
Integer
包装类

试试以下任何一种:

  • 整数.valueOf(字符串)
  • 新整数(字符串)
  • getInteger(字符串)

太棒了,非常感谢。