目次へ

2005.11.29 株式会社四次元データ CTO 畠中晃弘

5.3. 複数の同名メソッドのインポート

同じクラスでオーバーロードされた複数の同名の static メソッドが存在する場合も、1文でインポートすることができます。

package com.techscore;
public class A {
  public static void a(int i) { ... }
  public staitc void a(long l) { ... }
  public static void a(int i, String s) { ... }
}

これらはすべて次の1文でインポートされます。

import static com.techscore.A.a;

複数のクラスの同名メソッドの場合、同じシグネチャのメソッドを呼び出そうとするとコンパイルエラーとなります。たとえば、以下のような2つのクラスが存在するとします。

package com.techscore;
public class B {
  public static void a(int i) { ... }
}
package com.techscore;
public class C {
  public static void a(int i) { ... }
}

この場合、次のような static インポート宣言を記述することはできます。

import static com.techscore.B.a;
import static com.techscore.C.a;

ただし、実際にこのクラス内でパッケージ名やクラス名を指定せずにメソッドを呼び出そうとすると、どちらのクラスのメソッドであるかが一意に特定できないためコンパイルエラーとなります。

a(100); //コンパイルエラー

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp