同名のフィールド、メソッドをstaticインポートしたとき

Java Silver

前回、『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クラスの①、②の処理でコンパイルエラーが発生します。

コンパイルエラーになる理由

コンパイルエラーになる理由は

「コンパイラがどちらを使用すればよいか判断できない為」となります。

コメント

タイトルとURLをコピーしました