Javaは、古い値と新しい値がnullであるときに、プロパティの変更を発射することができますなぜ

Sergiy Medvynskyy:

クラスは、PropertyChangeSupport発火PropertyChangeEvent両方の値(新旧)がnullのとき。誰かがこの行動の理由が何であるかを私に説明してもらえますか?私の同僚のいくつかは、イベント駆動型アクションのこの振る舞いを使用しますが、私はそれがプロパティ変更パターンの誤用だと思います。アム私は右またはI何かを誤解しましたか?

私は、このコード行を意味します:

propertyChangeSupport.firePropertyChange(XY_PROPERTY, null, null);
mickle_ak:

nullは別の「不明」と比較することができない「ノーマル」値、ヌルの手段「不明」、および「不明」ではないので、あなたが「不明」からプロパティ値を変更した場合 - 私はそれが哲学的問題である、と思います「不明」、それは新しい「不明」の値です。だから、同様のことは、データベース内にある - NULLは常にNULLと等しくありません。

豆仕様から:「自分の本当の値が知られていない場合は、null値が古い値と新しい値のために提供することができます。」

豆仕様のもう一つの理由:「イベント・ソースは、そのプロパティが変更された場合の任意のセットということを示すために、名前としてnullオブジェクトを送信することができます。この場合、古い値と新しい値もNULLでなければなりません。」

詳細については、あなたが2002年から開いているJDKの問題4763463を参照することができます:(https://bugs.openjdk.java.net/browse/JDK-4763463

私はそれが開発のための非常に快適ではない、と思いますが、それはそうです。我々はそれを変更することはできません:-(

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=232951&siteId=1