たまにIncompatibleClassChangeErrorで私のブログにきてる人がいたみたいなのでその理由を書いてみようと思いました。 このエントリーはまともな原因を昔書かなかったことへの申し訳なさからきています。 たぶんさまざまな原因があるのでしょうが、 2種類ほど確実におこるケースがあったので書きます。 privateではなく、かつnon-staticなフィールドが、 staticに変わっていたら発生します。 またその逆もしかりです。 これはJLSに書いてあります。 13.4.10 static Fields non-staticをstaticに変えてみて確かにjava.lang.IncompatibleClassChangeErrorが発生しました。 Exception in thread "main" java.lang.IncompatibleClassChangeError