プロが教える店舗&オフィスのセキュリティ対策術

java.lang.IllegalAccessException: Class sun.reflect.misc.Trampoline can not access a member of class Data with modifiers ""
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...

上記のようなエラーが出てしまいます。
ソースコードは以下の通りです。

XMLEncoder xmlencoder=new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("出力先ファイルのパス")));

xmlencoder.writeObject(hoge);
decoder.close();

xmlencoderはXMLEncoder型
hogeは配列型のコンストラクタ。

配列の数だけエラーが出るので、hogeの読み取りのたびにエラーが出るようです。
ちなみにhogeのもとになるクラスにはデフォルトコンストラクタ
Hoge(){}
とフィールドごとにgetterとsetterをつけています。

おかしいとすれば次の2か所だと思うのですが原因がわかる方いたら教えてください。
(1)XMLEncoderやwriteObjectの使い方
(2)hogeに問題がある。

A 回答 (2件)

> Hoge(){}



を public Hoge() {} にしてください。

この回答への補足

さっそく
public Hoge(){}にしてみたのですが、まだ改善されません。

補足日時:2011/03/08 07:13
    • good
    • 0
この回答へのお礼

クラスを宣言するときに
publicをつけると解決しました。

お礼日時:2011/03/08 09:24

XMLEncoder自体の使い方は、そんなに問題があるというような複雑なものでもありませんし、やはり、普通に考えれば保存しようとしているクラスの定義にどこか問題があるということだろうと思います。

そのhogeインスタンスはどういうクラスなのでしょう。そのクラスの定義を掲載するわけにはいきませんか? そのほうが回答が付きやすいと思いますが。
    • good
    • 0
この回答へのお礼

クラスの定義に問題がありました。
public をつけると解決しました。

お礼日時:2011/03/08 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!