5. static インポート2005.11.29 株式会社四次元データ CTO 畠中晃弘
Java言語機能(JDK5.0(Tiger)新機能) 5章 static インポート
static インポートは、外部クラスの static メンバの参照を簡略化するための機能です。 5.1. 文法static インポート機能では、外部クラスの static 変数および static メソッドのインポート宣言を行うことが出来ます。static インポートは import static 文で行います。 たとえば、球の体積を求める以下のようなプログラムがあります。 class A {
public double volume(double r) {
return 0.75 * Math.pow(r, 3) * Math.PI;
}
....
}
これを static インポート機能を用いることにより、以下のように書き換えることができます。 import static java.lang.Math.pow;
import static java.lang.Math.PI;
class A {
public double volume(double r) {
return 0.75 * pow(r, 3) * PI;
}
....
}
これまでの import 文と同じように、ワイルドカード「*」を利用することもできます。 import static java.lang.Math.*; 5.2. enum 定数のインポートenum 型の各項目は内部的には static なメンバ変数ですので、public 宣言された enum 型の項目は static インポートすることができます。ただし、通常のインポートと同じく、インポートされる
enum 型は特定のパッケージに属していなければ生けません。無名パッケージに属している package com.techscore;
public enum.Color { RED, BLUE, YELLOW, BLACK, WHITE }
この場合、外部からは次のようにインポートすることが出来ます。 import.static com.techscore.Color.*; public な内部クラスとして定義された enum 型も外部から import することが出来ます。 package com.techscore;
public class A {
public enum.Color { RED, BLUE, YELLOW, BLACK, WHITE }
...
}
この場合、外部からは次のようにインポートすることで、RED や BLUE などをそのまま使用することができます。 import static com.techscore.A.Color.*; ただし、自クラスの内部クラスのメンバを static インポートすることはできません。上記の例では、クラス A のメソッド内からは Color.RED などとして参照するしかありません(switch 文の case ラベルとして使用する場合は例外です)。 |
![]()
![]()
|