相关疑难解决方法(0)

如何简化null安全的compareTo()实现?

我正在compareTo()为一个简单的类实现方法(为了能够使用Collections.sort()和Java平台提供的其他好东西):

public class Metadata implements Comparable<Metadata> {
    private String name;
    private String value;

// Imagine basic constructor and accessors here
// Irrelevant parts omitted
}
Run Code Online (Sandbox Code Playgroud)

我希望这些对象的自然顺序为:1)按名称排序; 2)如果名称相同则按值排序; 两种比较都应该不区分大小写.对于这两个字段,空值完全可以接受,因此compareTo在这些情况下不得中断.

脑海中出现的解决方案与以下几行相似(我在这里使用"保护条款",而其他人可能更喜欢单个返回点,但这不是重点):

// primarily by name, secondarily by value; null-safe; case-insensitive
public int compareTo(Metadata other) {
    if (this.name == null && other.name != null){
        return -1;
    }
    else if (this.name != null && other.name == null){
        return 1;
    }
    else if (this.name != null && …
Run Code Online (Sandbox Code Playgroud)

java comparison null refactoring compareto

147
推荐指数
7
解决办法
14万
查看次数

如何在java中检查字符串中的null?

如何在java中检查字符串中的null?我在用

stringname.equalsignorecase(null)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

java string null

86
推荐指数
5
解决办法
31万
查看次数

标签 统计

java ×2

null ×2

compareto ×1

comparison ×1

refactoring ×1

string ×1