簡體   English   中英

java單例布爾表達式返回消息而不是true或false

[英]java singleton boolean expression to return message instead of true or false

我們怎樣才能得到一個帶有哈希集的基本單例的布爾表達式來返回一條消息來代替原來的“真”或“假”?

public boolean bookLane(String lane) {
    return runLane.remove(lane);
}

我只想用消息替換 true 或 false 返回語句。

為了幫助澄清這個問題,像下面這樣的東西(我知道它不起作用)是我想要去的方向......

public boolean bookLane(String lane) {
    if (true)
    {
        message = "Lane is available. Adding runner...";
        //instead of true
    }
    else
    {
        message = "Lane unavailable. Please choose another";
        //instead of false
    }
    return runLane.remove(lane);
}

我只是嘗試弄亂代碼,發現它現在只返回 false。

public boolean bookLane(String lane) {
    String message1 = "Lane Available. Adding runner...";
    String message2 = "Lane is Unavailable.";
    if (runLane.remove(lane))
    {
        System.out.println(message1);
    }
    else
    {
        System.out.println(message2);
    }
    return runLane.remove(lane);//
}

關於修復它的任何想法? 不會撒謊,我在 Java 方面的經驗主要是在更有經驗的程序員的幫助下反復試驗。 我認為如果有人能讓我知道我遺漏了什么布爾方法如何處理不止一種返回類型,我認為這種方法可以工作。 我正在嘗試將返回值作為目標,以使用返回的布爾值顯示適當的消息。 這條路線甚至可能嗎? 我是否遺漏了布爾方法如何工作的一些邏輯? 請理解我的沮喪和我對你們幫助的需要。 感謝給予的指導...

在這些情況下,定義一個新的數據結構可能很有用,因為您希望從同一個方法中檢索兩條信息。 考慮以下:

class BookLaneResult {
    boolean success;
    String message;
    // add constructors / getters / other stuff you need
}

然后你的代碼變成這樣:

public BookLaneResult bookLane(String lane) {
    // some logic to determine if lane is available or not
    boolean laneAvaiable = ...;

    return new BookLaneResult(laneAvailable, laneAvailable ? "Lane available" : "Lane unavailable");
}

如果BookLaneResult僅在那種情況下僅用於那些消息,那么您可以只使用boolean參數構造函數並在內部根據參數設置消息。 但是,為了使新的數據結構更加靈活,您可以將其命名為OperationResult並在您執行某種操作時使用它,並希望檢索表示操作成功或失敗的布爾標志以及說明所發生情況的消息。

這是我用於布爾運算的東西,試圖弄清楚一個字符是否是一個字母——如果它是一個字母,則為真,否則為假。

代碼

boolean isLetter = Character.isLetter(ch); 
    if (isLetter == true) {
        Boolean.toString(isLetter); 
        System.out.println(" This is a letter."); }
    else  {
        Boolean.toString(isLetter);
        System.out.println(" This is not a letter."); }

為我工作 - 可能適用於其他布爾運算。

輸出

Input data: 123456abcdef
1  2 This is not a letter
2  3 This is not a letter
3  4 This is not a letter
4  5 This is not a letter
5  6 This is not a letter
6  7 This is not a letter
a  b This is a letter
b  c This is a letter
c  d This is a letter
d  e This is a letter
e  f This is a letter
f  g This is a letter

我意識到這已經晚了很多年,但是對於那些通過谷歌搜索出現在這個話題上的人來說,包括這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM