<分区>
我的一位同事决定像这样声明一些 API 代码:
public interface Filter<T> {
/**
* Test whether the given input is valid.
* @param input the input
* @return null for neutral, {@code Boolean.TRUE} for accepted and {@code Boolean.FALSE} for rejected.
*/
Boolean apply(T input);
}
这个想法在 IRC 上引发了一场 war 。虽然有些人提倡 Boolean
方法,但其他人认为这是不好的做法,应该使用三个元素的枚举来表示独立状态,如下所示:
public interface Filter<T> {
Result apply(T input);
enum Result {
ACCEPT, UNKNOWN, DENIED;
}
}
那么,就性能、可读性、可维护性,或者,如果真的很重要,更少的代码,生产中的最佳实践是什么?
编辑:这里,接受、未知(或中性)、拒绝(或拒绝)是@erickson 的意思。如果你对 gpt 感到困惑,请参阅他的答案,如果你感到困惑。
针对“搁置”,我澄清我的问题主要涉及: * 这有明确的约定吗?* 这是接受答案的原因