[解決済み] オブザーバーはJava 9で非推奨となりました。 その代わりに何を使うべきですか?
質問
Java 9が登場し
Observer
は非推奨となりました。
なぜでしょうか?もうobserverパターンを実装してはいけないということなのでしょうか?
何か良い代替案があれば教えていただきたいのですが。
解決方法は?
なぜでしょうか?もうobserverパターンを実装してはいけないということなのでしょうか?
まず後者の部分に答えます -。
はい
を実装してはいけないということです。
Observer
と
Obervable
はもうない。
アプリケーションに十分なイベントモデルを提供できなかったからです。例えば、何かが変更されたという概念だけをサポートし、何が変更されたかについての情報は一切伝えられませんでした。
アレックスの答え
ということをうまく前面に出しています。
Observer
には弱点があります:すべての
Observable
は同じ
. に基づくロジックを実装する必要があります。
instanceof
にオブジェクトをキャストし、具体的な型に変換して
Observable.update()
メソッドを使用します。
さらに、次のようなバグがありました。
をシリアライズすることができませんでした。
Observable
クラスを実装していないため
Serializable
インターフェイスを持ち、そのメンバはすべてプライベートでした。
それに代わる良い方法はありますか?
一方
Listeners
は多くの型を持ち、それらはコールバックメソッドを持ち、キャスティングを必要としない。で@Raviさんが指摘されているように
回答
を利用することができます。
PropertyChangeListener
の代わりに
それ以外の部分は
@Deprecation
は、他の回答でもリンクされているように、他のパッケージを探索するための適切なドキュメントをマークしています。
にあるように、非推奨も解析でマークされていることに注意。 本メール -
最近、このようなものに遭遇する人は、おそらく間違って打っているのでしょう。 を使用しているときに誤って
RxJava
や他のリアクティブストリームフレームワークを使用することができます。その場合 その場合、通常は jdk9 のjava.util.concurrent.Flow
すべてのリアクティブストリームフレームワークのAPI 今後予定されている jdk9互換バージョン。
編集 : また、APIの非推奨は上記の理由だけでなく、いくつかのバグレポート(上記リンク)のコメントにあるように、レガシーコードを維持することができないことも言及する価値があると思います。
関連
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] なぜJavaのVector(およびStack)クラスは時代遅れ、または非推奨とされているのですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
自動配線された依存性のインジェクションに失敗しました。
-
linux run jarfile Invalid or corrupt jarfile error.
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
JSPで「リストが型解決できない!」の解決方法
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策
-
[解決済み】ObserverとObservableはいつ使うべき?