我想创建一个类似于枚举的静态类,但是使用字符串值。 以下哪一种方法最安全地提取创建的类的完整实例?以下哪种方法在Java中更好?
public class Name
{
public static final Name MY_NAME = new Name("Chris", "Doe");
public String firstName;
public String lastName;
public Name(firstname, lastname)
{
this.firstName = firstname;
this.lastName = lastname;
}
}
OR
public class Name
{
public String firstName;
public String lastName;
public Name(firstname, lastname)
{
this.firstName = firstname;
this.lastName = lastname;
}
public static Name myName()
{
return new Name("Chris", "Doe");
}
}
在第二图案为什么您使用硬编码值? – Braj
两者并不完全相同;第二个会在每次调用myName()时返回一个新的'Name'实例,而第一个将返回相同的实例(禁止序列化/并发shenanigans) – awksp
第一个将是一个更好的选择,因为您正在创建字符串的最终字段。 –