Reflectionを使用して構成クラスのシリアライズを厳密にコーディングしないようにしようとしていて、何かを見つけられない状況に遭遇しました。ここに私がやろうとしていることがあります。リフレクションを使用して、クラス内のすべてのフィールドを動的に保存しますか? ( "<FieldName>"、 "<FieldValue>")
私は プロパティフィールドに名前と値を保存するためにリフレクションを使用したいので、
public class Configuration { public boolean bool = false; public int integer = 1; public int[] intArray = {0, 1}; }
のようなクラスを持っています。
--properties-- bool=false integer=1 intArray=0,1
名の部分は非常に単純です。私の問題は、各フィールドの値を取得し、特に各int []の値を取得しています。配列のほかに、すべての値はプリミティブなので、toString()はうまく動作します。
誰もがOracleよりも優れた例を示してくれますか?
'new int [] {1,2,3} .toString()'は期待通りに動作しません。 'Object.toString()'に委譲します。 – ggreiner
なぜXMLやJSONを使用しないのですか?どちらもシリアライザになり、かなり人間が読めるようになっています。 –
@llia G私は実際に結果をファイルに保存するためにPropteriesオブジェクトを使用していません。私はguiの設定を保存し、設定ファイルからそれらを開始するかなり複雑な方法に取り組んでいます。プロパティファイルを使用して、GUIの開始時のJComponentの値を設定します。私は、構成ファイル内の対応する値の名前にComponent.setName(String)メソッドを使用しました。 – user1125622