Java toString() 如何 return 字符串消息代替 null
Java toString() How to return String message in place of null
如何在 return 为空的字段中打印 "error" 字符串消息?这是我正在尝试做的事情:
当传递一个动物对象时,toString()
方法应该 return 一个看起来像这样的字符串。
Name: "fluffy"
Breed: Pitbull
Age: Data not available
正如您从上面的示例中看到的那样,字符串包含每个字段的标签,后跟一个冒号和存储在该字段中的数据。我能够像下面的示例一样打印字符串(请注意 Age 缺少数据,因为它为空)。
Name: "fluffy"
Breed: Pitbull
Age:
toString()
方法我是这样写的
public String toString() {
return "\n" +
"\nName: " + this.name +
"\nBreed: " + this.breed +
"\nAge: " + this.age +
"\n";
}
当字段为 null 或空时,我希望将数据替换为 "No Data available" 消息。
我试过使用条件语句
@Override
public String toString() {
String errorMessage = "Data not available";
if (name == null){
System.out.println(errorMessage);
}
if (breed == null){
System.out.println(errorMessage);
}...
我也试过用 for each 循环
@Override
public String toString() {
for (String field: fields)
if (field != null) {
return "\n" +
"\nName: " + this.name +
"\nBreed: " + this.breed +
"\nAge: " + this.age +
"\n";
}
}
} else (field == null){
return "Data not available";
}
我已经查看了此处的其他提要,但仍然不太了解如何确保每个字段(如果为 null)都收到错误消息。
以下是我在 Whosebug 上查看过的帖子列表:
Returning a string with toString java ,
java toString() is returning null from class,
java toString() returning this
在此先感谢您的帮助!我是编码的新手,我非常感谢一路上帮助我理解的所有人。
class Dog {
private static final String DEFAULT_MESSAGE = "No Data Available";
private final String name;
private final String breed;
private final Integer age;
public Dog(String name, String breed, Integer age) {
this.name = name;
this.breed = breed;
this.age = age;
}
@Override
public String toString() {
return String.format("name=%s\nbreed=%s\nage=%s",
name == null ? DEFAULT_MESSAGE : name,
breed == null ? DEFAULT_MESSAGE : breed,
age == null ? DEFAULT_MESSAGE : age);
}
}
您需要结合两次尝试。
public String toString() {
String errorMessage = "Data not available";
String n = name;
if (n == null) n = errorMessage;
String b = breed;
if (b == null) b = errorMessage;
String a = age;
if (a == null) a = errorMessage;
return "\n" +
"\nName: " + n +
"\nBreed: " + b +
"\nAge: " + a +
"\n";
}
如何在 return 为空的字段中打印 "error" 字符串消息?这是我正在尝试做的事情:
当传递一个动物对象时,toString()
方法应该 return 一个看起来像这样的字符串。
Name: "fluffy"
Breed: Pitbull
Age: Data not available
正如您从上面的示例中看到的那样,字符串包含每个字段的标签,后跟一个冒号和存储在该字段中的数据。我能够像下面的示例一样打印字符串(请注意 Age 缺少数据,因为它为空)。
Name: "fluffy"
Breed: Pitbull
Age:
toString()
方法我是这样写的
public String toString() {
return "\n" +
"\nName: " + this.name +
"\nBreed: " + this.breed +
"\nAge: " + this.age +
"\n";
}
当字段为 null 或空时,我希望将数据替换为 "No Data available" 消息。
我试过使用条件语句
@Override
public String toString() {
String errorMessage = "Data not available";
if (name == null){
System.out.println(errorMessage);
}
if (breed == null){
System.out.println(errorMessage);
}...
我也试过用 for each 循环
@Override
public String toString() {
for (String field: fields)
if (field != null) {
return "\n" +
"\nName: " + this.name +
"\nBreed: " + this.breed +
"\nAge: " + this.age +
"\n";
}
}
} else (field == null){
return "Data not available";
}
我已经查看了此处的其他提要,但仍然不太了解如何确保每个字段(如果为 null)都收到错误消息。
以下是我在 Whosebug 上查看过的帖子列表:
Returning a string with toString java ,
java toString() is returning null from class,
java toString() returning this
在此先感谢您的帮助!我是编码的新手,我非常感谢一路上帮助我理解的所有人。
class Dog {
private static final String DEFAULT_MESSAGE = "No Data Available";
private final String name;
private final String breed;
private final Integer age;
public Dog(String name, String breed, Integer age) {
this.name = name;
this.breed = breed;
this.age = age;
}
@Override
public String toString() {
return String.format("name=%s\nbreed=%s\nage=%s",
name == null ? DEFAULT_MESSAGE : name,
breed == null ? DEFAULT_MESSAGE : breed,
age == null ? DEFAULT_MESSAGE : age);
}
}
您需要结合两次尝试。
public String toString() {
String errorMessage = "Data not available";
String n = name;
if (n == null) n = errorMessage;
String b = breed;
if (b == null) b = errorMessage;
String a = age;
if (a == null) a = errorMessage;
return "\n" +
"\nName: " + n +
"\nBreed: " + b +
"\nAge: " + a +
"\n";
}