前回、『staticインポートの書式』にて、staticインポートで同名のフィールド、メソッドがあった場合の動きについて触れましたが、今回はコンパイルエラーになるパターンについて紹介したいと思います。
複数の同名のフィールド、メソッドをstaticインポートすると、コンパイルエラーになる
FugaクラスとPiyoクラスで同名のフィールド、メソッドを定義し、
package jp.co.xxx; class Fuga{ public static String field = "Fuga-field"; public static String method() { return "Fuga-method"; } }
package jp.co.xxx; class Piyo{ public static String field = "Piyo-field"; public static String method() { return "Piyo-method"; } }
Hogeクラスにて両方のフィールド、メソッドをstaticインポートします。
package jp.co.xxx; import static java_gold.Fuga.field; import static java_gold.Fuga.method; import static java_gold.Piyo.field; import static java_gold.Piyo.method; public class Hoge { public static void main(String[] args) { System.out.println(field); ① System.out.println(method()); ② } }
すると、Hogeクラスの①、②の処理でコンパイルエラーが発生します。
コンパイルエラーになる理由
コンパイルエラーになる理由は
「コンパイラがどちらを使用すればよいか判断できない為」となります。
コメント