2013-08-02 70 views
3

我佈置了一些維護任務的Java程序,發現這個:這個布爾setter是什麼意思?

public void setActiveCode(boolean isActiveCode) { 
    this.isActiveCode = isActiveCode & Boolean.TRUE; 
} 

類型的this.isActiveCodeboolean,重複在類中的每個布爾制定者同樣的概念。我無法弄清楚爲什麼這樣做,我不能問最初的開發者。

會有這樣做的任何正當理由嗎?

+6

我當然想不起一個。看起來像[貨物崇拜編程](http://en.wikipedia.org/wiki/Cargo_cult_programming)給我的一個主要例子。 –

+0

不會。這證明了我的理論,即所有程序員都應該被迫背誦摩根法則。更不用說運營商的優先級和其他一些基礎知識。 – EJP

+0

特別奇怪的是,一個'&'是一個按位運算符,而不是普通的'boolean'運算符'&&',並且使用'Boolean.TRUE'而不是簡單的'true'。 – jpmc26

回答

9

這樣做會有什麼正當理由嗎?

號這只是與清晰度零增益冗長的代碼(可以說,因爲這裏的清晰度損失你想知道它的全部)。

這讓我想起

public boolean isTrue(boolean b) { 
    if(b == true) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

不幸的是,你會在野外看到不時我。真是太傷心了

+5

剛剛也是:http://i.imgur.com/1Dd3KLS.png – 2013-08-03 01:31:05

1

它的奇怪。布爾邏輯可以與邏輯&一起使用,但這是無用的,因爲a & true = a。似乎是一個開發人員特定的OCD。