2017-10-10 54 views
-2

我是Java新手。如何創建函數來獲得一個對象或null?如何創建函數來獲得一個對象或null?

我有簡單的類:

public class Auto { 
    Auto (String text) { 

    } 
} 

等班我想有方法onAuto:

public class AutoSearch { 
    public Auto oneAuto() 
    { 
     //operations 
     String text = getOperations(); 
     if (text) { 
      Auto auto = new Auto(text); 
      return auto; 
     } else { 
      return null; 
     } 
    } 
} 

但這不工作,因爲方法必須返回對象自動。

如果我不能在此方法中創建對象Auto,該怎麼辦?我該怎麼做?

+2

我怎麼沒看到'如果(字符串)'應該工作 – 2017-10-10 19:44:12

+2

事實上 - 你return語句看起來不錯,但'if'條件不是。如果你更清楚「不工作」是什麼意思 - 你會得到什麼樣的確切錯誤? –

回答

1

您想驗證文本是否存在以便創建Auto對象,我是否正確?

public class AutoSearch { 

    public Auto oneAuto() { 

     String text = getOperations(); 

     if (text != null) { 
      return new Auto(text); 
     } else { 
      return null; 
     } 

    } 

} 

你可以在一個更緊湊的方式做到這一點也使用三元運算符:

public class AutoSearch { 

    public Auto oneAuto() { 
     return text != null ? new Auto(text) : null; 
    } 

} 

然而,在Java中if語句裏的表達式必須解析爲布爾值(true或false) 。你似乎認爲Java像Javascript一樣工作,事實並非如此。 Java和Javascript只有這個名字是相同的。

正如davidxxx所說,可能您需要將Auto構造函數定義爲public。

0

1)if (text)不是布爾表達式。 它無法編譯。但是if (text != null)可以。

2)您使用包私人訪問修飾符聲明Auto構造函數。
這意味着AutoSearch必須在與Auto相同的包中才能調用此構造函數。
要不改變Auto構造函數public

public Auto (String text) { 
    .... 
} 
0

您需要檢查文本爲空。如果爲空返回NULL,如果有內容,然後返回對象

if("".equals(text) || text == null){ 
      return null; 
} else { 
     return auto 
} 
相關問題