gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:00:08 25 4
gpt4 key购买 nike

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

No1251020

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

那么它就不会像整数一样排序,而是像字符串一样排序。例如:它将像这样排序:

No1102205

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com