我想為未宣告的物件列印“無”值而不是 null。可能嗎?
public class class1 {
class2 c2;
public static void main(String[] args) {
class1 c1=new class1();
System.out.println(c1.c2);
}
}
class class2{
public String toString(){
if(this==null){
return "None";
}else{
return "Correct";
}
}
}
編輯:我已經添加了代碼。此代碼列印:
null
但我想列印“無”。我該怎么辦?
uj5u.com熱心網友回復:
實用程式類Objects提供了許多有用的方法。例如Objects#toString(Object)和Objects#toString(Object, String)。
final String s = Objects.toString(obj, "None");
編輯后:this參考永遠不會為空,因此this == null將始終為假。您需要在課堂之外處理空檢查。通常,String.valueOf將在將物件轉換為字串時呼叫。此方法處理null參考,而不是類本身。您必須先手動將物件轉換為字串(使用上述實用程式)。
您需要更改代碼:
public class Class1 {
Class2 c2;
public static void main(String[] args) {
Class1 c1 = new Class1();
System.out.println(Objects.toString(c1.c2, "None"));
}
}
class Class2 {
@Override
public String toString(){
return "Correct";
}
}
您始終可以創建一個包裝器,Objects#toString(Object,String)以避免一遍又一遍地指定默認值:
public final class MyObjects {
private MyObjects(){}
public static String toString(final Object obj) {
return Objects.toString(obj, "None");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/447646.html
上一篇:有什么方法可以為React中的物件中的鍵添加另一個值?
下一篇:使用VBA訪問嵌套物件中的鍵和值
