我试图以这种方式锁定类方法:
我有一个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等的方法;
答案 0 :(得分:3)
这种编程的正确设计是抛出异常,所以代码应该是这样的:
protected boolean isHeads () throws ObjectIsLockedException
{
if(locked()) throw new ObjectIsLockedException();
return (face == HEADS);
}
请注意,ObjectIsLockedExpception
不是Java异常:您必须在代码中将其声明为类。
答案 1 :(得分:0)
您不能从布尔方法返回任何内容。它必须是真的还是假的。返回一个int或enum或使函数等待。