gpt4 book ai didi

java - 使用 String Wrapper 是更好的设计吗?

转载 作者:行者123 更新时间:2023-11-29 04:35:01 25 4
gpt4 key购买 nike

有人建议我使用 String Wrapper 而不是 String,目的是明确字符串代表什么。

例如,我有以下枚举。

public enum Priority
{
PRIORITY_URGENT("urgent"),
PRIORITY_HIGH("high"),
PRIORITY_LOW("low");

private String _piorityLevel;
private Priority(String level)
{
_priorityLevel = level;
}

public String getPriorityLevel()
{
return _priorityLevel;
}
....
}

像PriorityLevel一样将优先级String包装成一个新的类来明确表示字符串代表优先级是不是更好的设计,如下所示?

public enum Priority
{
PRIORITY_URGENT(new PriorityLevel("urgent")),
PRIORITY_HIGH(new PriorityLevel("high")),
PRIORITY_LOW(new PriorityLevel("low"));

private PriorityLevel _piorityLevel;
private Priority(PriorityLevel level)
{
_priorityLevel = level;
}

public PriorityLevel getPriorityLevel()
{
return _priorityLevel;
}
....
}

最佳答案

Java 中缺少程序员定义的隐式转换运算符使得编写字符串包装器有些麻烦。 toString约定会有所帮助,但在许多情况下,转换将是显式的。

想一想您的 API 用户将对 PriorityLevel 执行的常见操作属性(property):他们在任何地方都需要它作为String他们将不得不写

Priority priority = Priority.PRIORITY_URGENT;
String level = priority.getPriorityLevel().toString();

最后toString()通话很烦人。虽然在这种情况下你可以避免它

System.out.println("This job has " + priority.getPriorityLevel() + "priority");

最好完全不用考虑。毕竟,enum已经为您的字符串提供了足够的包装,因此不需要第二层。

关于java - 使用 String Wrapper 是更好的设计吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015152/

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