相关疑难解决方法(0)

你能不用if语句写任何算法吗?

这个网站让我感到幽默感 - http://www.antiifcampaign.com/但是在你使用if语句的每种情况下,多态性都可以工作吗?

oop

31
推荐指数
6
解决办法
1万
查看次数

java Parse布尔值,可以为null

我注意到java.lang.Boolean类存在一个无法解析空值的问题.我知道它有parseBoolean静态方法但是因为它的签名状态它只接受String而不是Object.

换句话说,它具有以下特征:

public static boolean parseBoolean(String s)
Run Code Online (Sandbox Code Playgroud)

但不是:

Boolean.parseBoolean(Object)
Run Code Online (Sandbox Code Playgroud)

在不降低NullPointerException的情况下检查布尔值的最佳方法是什么?

java boolean

1
推荐指数
3
解决办法
5442
查看次数

给null一个含义以及两个布尔值以表示过滤中的三元balue是不是很好?

我的一位同事决定宣布一些这样的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);
}
Run Code Online (Sandbox Code Playgroud)

这个想法引发了对IRC的战争.虽然有些人提倡这种Boolean方法,但其他人认为这是不好的做法,应该使用三个元素的枚举来表示个体状态,如下所示:

public interface Filter<T> {
    Result apply(T input);
    enum Result {
        ACCEPT, UNKNOWN, DENIED;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,在性能,可读性,可维护性方面,或者,如果真的重要,那么代码越少,生产中的最佳实践是什么?

编辑:在这里,接受,未知(或中立),拒绝(或拒绝)是@erickson的意思.如果你感到困惑,如果你感到困惑,请参考他的anwser.

在回应"搁置"时,我澄清说我的问题主要涉及:*是否有明确的约定?*这是接受anwser的原因

java

1
推荐指数
1
解决办法
107
查看次数

标签 统计

java ×2

boolean ×1

oop ×1