Skip to content

KKoga/IncompatibleClassChangeErrorSample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

強制的にIncompatibleClassChangeErrorを起こすサンプル

抽象クラスとその派生の組み合わせとインタフェースとその実装の組み合わせの同名のクラスを作り、これを参照するようにメインクラスを作っている。 そして、ビルド時と実行時で参照先が変わるようにした。

これでわかることは、変数の型に指定されるクラス名が完全一致しているなら変わっても問題が出ないが、派生元のクラス名(あるいはインタフェース名)が 使われているとだめ、ということ。

なお、src/Main.javaのbase_var_test()において、boolean b = d.isOk()をboolean b = ((Derived)d).isOk()とするとエラーにならない。 変数の型にはインタフェースやクラスといった区別はなさそうに見える。

About

sample for raise java.lang.IncompatibleClassChangeError

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published