"literal".equals(s) のまとめ
3つ流派があって
- ぬるぽが飛ぶのが嫌だから、nullでないことが保証されるリテラルを先に書く
- ぬるぽが飛ばないとエラーを隠すので、ぬるぽを発生させる可能性のある s を先に書く
- equalsは同値比較演算で交換可能のはずなのに、順序を変えると動作が違うのは気持ち悪い
な感じ。おそらく見た目がどうとかは実はどうでもいい。
要は、交換可能で1と2を明示的にサポートしてやればよいので、
// null をゆるす static boolean equals(Object o1, Object o2); // null をゆるさない static boolean equalsObject(Object o1, Object o2);
みたいなメソッドを用意してやるか、HaskellのMaybeみたいなものを全力で使ってnullを出現させないとか、その辺りで落ち着けばいいんじゃないかなと。
面倒ならば、どれかルールを決め打ちして統一して運用すればよいとおもいます。