Java 如何检查用户使用的构造函数
我有这样的构造函数Java 如何检查用户使用的构造函数,java,string,Java,String,我有这样的构造函数 public Name(String firstName, String lastName) { setFirstName(firstName); setLastName(lastName); } public Name(String firstName, String lastName, String middleName) { setFirstName(firstName); setLastName(lastNam
public Name(String firstName, String lastName)
{
setFirstName(firstName);
setLastName(lastName);
}
public Name(String firstName, String lastName, String middleName)
{
setFirstName(firstName);
setLastName(lastName);
setMiddleName(middleName);
}
@Override
public String toString()
{
if(no middle name)
{return getFirstName() + " " + getLastName();}
else if(has a middle name)
{return getFirstName() + " " + getMiddleName() + " " + getLastName();}
}
我想像这样重写我的toString()方法
public Name(String firstName, String lastName)
{
setFirstName(firstName);
setLastName(lastName);
}
public Name(String firstName, String lastName, String middleName)
{
setFirstName(firstName);
setLastName(lastName);
setMiddleName(middleName);
}
@Override
public String toString()
{
if(no middle name)
{return getFirstName() + " " + getLastName();}
else if(has a middle name)
{return getFirstName() + " " + getMiddleName() + " " + getLastName();}
}
我该怎么办
@Override
public String toString()
{
if(middleName == null)
{return getFirstName() + " " + getLastName();}
else
{return getFirstName() + " " + getMiddleName() + " " + getLastName();}
}
例如,您可能希望签出isNullOrEmpty()(并且只使用一个返回值,正如riccardo.cardin指出的,这是更好的做法):
听起来你应该检查middleName
是空的还是空的……是的,我和Jon Skeet在一起。你的伪代码有效,你只需要实现它?如果您想检查使用了哪个构造函数,您还可以使用所用构造函数的标识符设置一个私有字段constructorUsed
,但我想不出一个真正的用例。谢谢,我不知道我可以用这种方式检查。@jbrown,请不要在一个方法中有多个返回
s。不要使用String
串联(+
运算符):使用StringBuilder
或方法String.format(…)
@riccardo.cardin根据其他SO答案,编译器将自动优化串联到StringBuilder中,因此串联可以提供具有相同优点的可读代码。如果代码在循环中,StringBuilder会更有效,但在这里它是不必要的。@jbrown,很抱歉,你是对的。但是关于多个return
语句的故事仍然存在;)我认为有两个返回语句的代码更可读。在这种情况下,我认为没有理由避免这种情况。有关此主题的大量讨论,请参见。