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

标签 java gwt

好的,我得到了一张包含编号列表的表格。

No
1
2
5
10
20

If i set columnSortHandler for the No column using String like this:

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

Then it is not correct.

So tried:

 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;
        }
    });

但是compareTo不适用于Integer。

所以我的问题是

如何@Override Comparator使CellTable中的列基于整数而不是基于字符串(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; 

Integer.parseInt() returns primitive int not wrapper Integer class.

Cannot invoke compareTo(int) on the primitive type int

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

尝试任何一个:

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

关于java - 如何@Override Comparator使CellTable中的列基于整数而不是基于字符串(GWT)排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22743000/

相关文章:

java - 如何使用 MAMP 显示 html/php 和 GWT 代码?

java - 提交 FormPanel 后的警报窗口

gwt - GWT Maven 插件有没有办法生成返回 SafeHtml 的 I18N 消息接口(interface)?

java - ArrayList<ArrayList<String>> 到 String[][]

java - JNA如何在Java中使用这个方法?

Java 扫描器在处理中不起作用

java - 为什么 Eclipse 不能导出类​​路径中包含的 Maven 库?

java - 在gradle测试中看不到真正的异常

java - Math.ceil 返回 0.0?

java - 缺少 Class.isInstance() 的 GWT 解决方法