0
我有以下枚举Java的验证作为参数传递一个枚举值
public enum State {
UNCHECKED, SUBMITTED, VALIDATED, REJECTED, ENTITLED;
}
,并在另一个类中我有一个接收一个国家作为参数,这样
public void validate (State state) throws InvalidStateException {
if (state != State.VALIDATED || state != State.REJECTED)
throw new InvalidStateException();
}
这种方法方法应该只在参数State不是State.VALIDATED或State.REJECTED时抛出异常InvalidStateException,但实际上它会抛出它。 我只是看不到错误在哪里,或者我怎么能用另一种方式编写代码。
我知道,这是不工作,因为下面的JUnit测试说提到的异常被抛出,它不应该:
@Test
public void testValidate() throws InvalidStateException {
object.validate(State.VALIDATED);
}
在IF上使用'&&'而不是'||'! –