問題タブ [unmodifiable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-binding - カスタムメソッドを介してのみJavaFX ListPropertyを変更可能にする方法
私は非公開リストを持っていますが、一般的に外部から変更できるようにしたくありません。オブジェクトが有効な場合にのみ、外部からの追加のみが許可されます。したがって、私は次のように書いていました。
ここで、JavaFX の目的で、リストをプロパティに変換します。
データ バインディングのようなプロパティの利点から利益を得るには、ListChangeListener
そのプロパティを外部の世界に提供する必要があります。ただし、リストのすべてのメソッドへのアクセスも提供されます。(リスト インスタンス自体は変更されないため、ReadOnlyListProperty を使用しても効果はありません。) すべての目標を達成するにはどうすればよいですか。
- プライベート ListProperty
- ListChangeListener は外部から追加可能
- 外部から依存関係をバインドするために使用できます (作成メソッドはクラス バインディングを形成します) 。
- プロパティまたはリスト インスタンス自体の変更なし
- 独自の方法のみによる外部からのリスト コンテンツの変更
java - 変更不可能なリストの複製/コピー
手動でトラバーサルしてコンテンツを新しい配列に入れる以外に、変更不可能なリストを変更する他のオプションはありますか?
一部の開発者は、複製ではなく、この方法で API を構築することを選択します..
java - データ構造の選択における混乱
を作成したいですMap<Long, Enum< ? extends SomeInterface>
。私にとって最良の選択肢はどれですか?
私はこれを試しました
Map<Object,Object>
しかし、「からに変換できません」というエラーが発生していますMap<Long,Enum<? extends SomeEnum>[]>
。私はこれが初めてです。助けてください!
対応する可能な回答値への質問 ID の変更不可能なマップが必要です。可能な答えは列挙型です
可能な回答は次のようにラップされます。
java - Collections.unmodifiableList (Java 8 SE) は、そこから新しい ArrayList を作成するときにどのように変更されますか?
次のように、変更不可能なリストを返すゲッターがあります。
私はこのゲッターを次のように呼んでいます:
次に、このリストを次のように変更する別のメソッドに渡します。
addToAdvisoryList(Advisory advisory) は次のとおりです。
これらのコードを実行すると、元の製品リストが変更されます。誰かが正確に何が起こったのか説明してもらえますか? また、変更不可能なリストを変更しないようにするにはどうすればよいでしょうか?