2

ハッシュマップ

public Map<String, BarrackData> barrack = new HashMap<String, BarrackData>();

BarrackData.java

public class BarrackData {
int A;
int B;
int C;
int D;
int E;
String Title;

public BarrackData(int a, int b, int c, int d, int e, String title) {
    A = a;
    B = b;
    C = c;
    D = d;
    P = p;
    Title = title;
}

この HashMap を保存するにはどうすればよいですか? そしてそれをロードしますか?
Objectin/outputstream でさまざまなメソッドを試してみまし
たが、最終的には NotSerializable、ObjectSteam、および IO 例外が発生
しました。それらを処理する方法がわかりません。

4

3 に答える 3

2

シリアル化できるのはクラスのみです: クラスSerializableに追加implements Serializableするだけです:

public class BarrackData implements Serializable {


実際シリアル化するには、クラス内のすべてのフィールドが である必要がありますがSerializable、Java プリミティブ、配列 (要素の型が の場合Serializable)、java.langクラス ( などString)、およびCollections(要素の型が の場合Serializable) はSerializableであることに注意してください。

于 2012-10-23T18:28:57.953 に答える
0

Object クラスをシリアライズ可能にする必要があります (文字列または保存/ロードできるものとの間で変換する serialize() および deserialize() メソッドを指定します)。どうやら、HashMaps はすぐに使用できるシリアライゼーションのレベルを容易にします。

Java シリアライゼーションに関するチュートリアルへのリンクは次のとおりです: http://www.tutorialspoint.com/java/java_serialization.htm

HashMapシリアライゼーションに関する詳細情報は次のとおりです。 キーを文字列としてマップをシリアライズおよびデシリアライズします

ボヘミアンが述べたように、実装Serializableはこれを行う標準的な方法です。

于 2012-10-23T18:30:08.093 に答える
0

回答を完了するには、keySet()所属の結果がHashMap(いつでも必要な場合) ではないことに注意してくださいSerializable

実際、キーは、 に関する値から分離されるべきではありませんHashMap

于 2012-10-23T18:30:27.160 に答える