パラメータとして任意の数のインスタンスのインスタンスをとり、メソッドに渡される順番でファイルに書き込む、可変アリティメソッドserializeMethod()を作成しようとしています。このファイルは非表示になっており、代わりに、メソッドが配置されるクラスのostreamインスタンス変数によって参照されるOutputStreamオブジェクトを介して利用できます。それはメンバー受け入れない理由はないように注意してください問題を抱えて可変アリティメソッドの作成
public void serializeMethod(Member... member) {
ObjectOutputStream output = null;
try {
output = new ObjectOutputStream(ostream);
output.writeObject(member);
output.close();
}catch(IOException e) {
System.out.print("IOException :" + e);
}
}
Test case:
Member m1 = new Member("SI2993", 'c', 2);
Member m2 = new Member("GE8103", 's', 1);
Member m3 = new Member("PD9320", 's', 1);
Member m4 = new Member("NE9025", 'c', 4);
Member m5 = new Member("QW3234", 's', 1);
serializeMethod(m1, m2, m3, m4, m5);
deSerializeMethod();
Expected result :
Member ID: SI2993
Member role: c
Length of membership: 2
Member ID: GE8103
Member role: s
Length of membership: 1
Member ID: PD9320
Member role: s
Length of membership: 1
Member ID: NE9025
Member role: c
Length of membership: 4
Member ID: QW3234
Member role: s
Length of membership: 1
My output:
Exception in thread "main" java.lang.ClassCastException: [LMember; cannot be cast to Member
\x09at SerializeMethodVariableArity.deSerializeMethod(SerializeMethodVariableArity.java:144)
\x09at SerializeMethodVariableArity.runTests(SerializeMethodVariableArity.java:188)
\x09at SerializeMethodVariableArity.main(SerializeMethodVariableArity.java:178)
私はMember [] members =(Member [])input.readObject();を必要とします。この最初の(メンバーm:メンバー){ output.writeObject(m); } –
ありがとうございました!助けを求めて:) –