プロジェクト内のいくつかのデータ構造を管理するためにApacheBeanUtilsを使用することを検討しています。タスクは、実行時にのみ認識される任意のパスで、リストからアイテムを削除することです。
BeanUtilsを使用して、次のような呼び出しでアイテムをnullに設定できると思います。
PropertyUtils.setProperty(myObject, "subitem.aList[3]", null);
ただし、私のプロジェクトの他の領域には、これらのリストを反復処理するループがあります。リストにnull項目がある場合、現在は処理されていません。コードがこれらの項目がnullでないことを期待する場所は多数(数十、場合によっては数百)あるため、残念ながら、これらのリストを反復処理する可能性のあるすべてのコードにnullチェックを追加することは実用的ではありません。
BeanUtils
nullに設定する代わりに、コレクションからアイテムを削除するために使用することはできますか?
setProperty
渡されたパスを解析し、List
で終わるパスを探して[<number>]
番号を解析しList
、リストへのパスを取得してを呼び出すことで、これを自分で実装できると思いますremove(number)
。自分で展開する前に、既存のソリューションを使用したいと思います。