gpt4 book ai didi

java - 设计访问可能为空或 null 的字符串字段的比较器的最佳方法

转载 作者:行者123 更新时间:2023-12-01 22:37:32 25 4
gpt4 key购买 nike

我必须按不同的字符串属性对集合进行排序,这些属性可能为空 (""),甚至可能为 null。这两个值都是允许的,并且必须同等对待。

我通过使用一种方法解决了这个问题,该方法检查每个字符串是否为 null,并在找到 null 时返回一个空字符串。

<小时/>

到目前为止,我的比较器基本上是这样的

public class MyComparator implements Comparator<MyObject> {

@Override
public int compare(MyObject o1, MyObject o2) {
// ... some logical stuff like e.g.
return rein(o1.getSomeValue()).compareTo(rein(o2.getSomeValue());
}

private String rein(String str) {
return str == null ? "" : str;
}
}

我想知道这个设计是否可以被认为是可以的,或者是否有理由反对?如果不行,我还能做什么来满足我的要求?所有这些(在大多数情况下是不必要的)函数调用在我看来都很丑陋,因为我们正在谈论大约 1/1000 的情况。所以我想知道是否有更优雅的解决方案?

最佳答案

这里没有任何问题。如果省略 'rein' 方法,当 o1.getSomeValue() 返回 null 时,您将得到 NullPointerException。因此,此检查对于正确的比较方法工作是必要的。很难想象更优雅的解决方案。

关于java - 设计访问可能为空或 null 的字符串字段的比较器的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26678516/

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