锁定一个布尔方法(如何在布尔方法中返回任何内容或丢弃一个布尔方法)

时间:2016-04-22 17:52:24

标签: java

我试图以这种方式锁定类方法: 我有一个private boolean status;

status == true表示课程已被锁定且status == false表示课程已解锁

如果该类已被锁定,则方法无法调用如下:

  protected void flip ()
    {
        if (locked()) return;
        face = (int) (Math.random() * 2);
    }
问题是:

我遇到布尔方法的问题,请考虑一下:

   protected boolean isHeads ()
    {
        //if(!locked()) return false or true;
       //if i write upper command then its true or false like the bottom command and its unclear that this false or true is for which of them
        //if(!locked())
     //if i write this command then i have to write another return and its the same problem too;
        return (face == HEADS);

    }

注意:我有一个界面,所以我无法改变关于locked()和lock等的方法;

2 个答案:

答案 0 :(得分:3)

这种编程的正确设计是抛出异常,所以代码应该是这样的:

protected boolean isHeads () throws ObjectIsLockedException
{
    if(locked()) throw new ObjectIsLockedException();
    return (face == HEADS);
}

请注意,ObjectIsLockedExpception不是Java异常:您必须在代码中将其声明为类。

答案 1 :(得分:0)

您不能从布尔方法返回任何内容。它必须是真的还是假的。返回一个int或enum或使函数等待。