java singleton boolean表达式返回消息而不是true或false

时间:2015-08-29 07:52:29

标签: java boolean singleton message

我们如何获得带有hashsets的基本单例的布尔表达式来返回消息来代替原始的' true'或者' 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方面的经验主要是试验和错误,有一些经验丰富的程序员的帮助。我认为这个方法可以工作,如果有人可以让我知道我缺少什么布尔方法如何工作不仅仅是一个返回类型。我试图使用返回的布尔值来显示返回值以显示相应的消息。这条路线甚至可能吗?我在布尔方法的工作方式或其他方面缺少一些逻辑吗?请理解我的沮丧和我对yalls帮助的需求。感谢给予的指导...

2 个答案:

答案 0 :(得分:0)

在这些情况下,定义新的数据结构可能很有用,因为您要从同一方法中检索两条信息。请考虑以下事项:

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,并在执行某种操作时使用它,并期望检索表示操作成功或失败的布尔标志以及说明发生了什么的消息。 / p>

答案 1 :(得分:0)

这是我用于判断一个字符是否是字母的布尔运算的内容 - 如果是字母,则为真,如果不是,则为假。

代码

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

我意识到这已经晚了好几年了,但是对于那些从 Google 搜索中弹出这个线程的人来说,包括这个。