【发布时间】:2018-01-14 08:23:19
【问题描述】:
public class VitalCompare implements Comparator<VitalReportsDetails> {
@Override
public int compare(VitalReportsDetails vitalReportsDetails, VitalReportsDetails t1) {
int n1 = Integer.parseInt((vitalReportsDetails.getValue().equals("") ? "0" : vitalReportsDetails.getValue()));
int n2 = Integer.parseInt((t1.getValue().equals("")? "0" : t1.getValue()));
if (n1 >= n2) {
return 1;
}
return -1;
}
}
这样调用:
int min=Integer.parseInt(Collections.min(listOfData, new VitalCompare()).getValue());
Logcat
8-07 11:17:49.604 27972-27972/com.cognistrength.caregiver E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cognistrength.caregiver, PID: 27972
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.cognistrength.caregiver.adapters.VitalGraphAdapter.onBindViewHolder(VitalGraphAdapter.java:123)
at com.cognistrength.caregiver.adapters.VitalGraphAdapter
【问题讨论】:
-
只是把这个扔出去......为什么
vitalReportsDetails.getValue()是String而不是Integer? -
比较器用于对数据进行排序,它不会改变它们..
-
另外,当两个值相同时,您的
Comparator需要返回0。你的没有。 -
如何修复..这个。
-
正如@IntelliJ Amiya 所说,它没有可以转换为int 的值。例如,如果值为“Ali”,你怎么能期望将其更改为整数!?
标签: java android numberformatexception