9

Javaで静的インポートを使用しようとしましたが、間違って記述していました

static import java.lang.System.out;

そして、コンパイルされたコード(「out」記号は見つかりませんでしたが)、構文エラーはありません。

では、「静的インポート」は実際にはどういう意味ですか?

4

3 に答える 3

23

これはコンパイルされるべきではありません。

static import java.lang.System.out;

JLSによると、単一の静的インポートは次のようになります。

import static java.lang.System.out;

Java importステートメントのすべての形式はキーワードで始まりimportます。キーワードを使用できる他のコンテキスト(つまり、importステートメント以外)はないと思いますimport

注:このコンテキストでは、importandstaticキーワードは修飾子ではないため、「修飾子は任意の順序で指定できます」というメタルールはここでは適用されません。


要するに、コンパイラ/IDEが壊れているか混乱している...またはあなたが見ているものは実際のJavaソースコードではありません。

于 2013-01-19T03:09:32.363 に答える
3

どうやら、それはバグでした。

ラムダをテストするために、SunのJava 8(JDK 1.8)を使用しています...しかし、「静的インポート」が受け入れられるのは奇妙だと思いました。

すべての答えをありがとう。これをSunに報告します。:)

于 2013-01-19T03:44:11.890 に答える
0

クラスの静的メンバーにアクセスするには、それを含む完全なクラス名を使用する必要があります。たとえば、クラスのpi値にアクセスするには、を使用する必要があります。ただし、()をインポートすると、コードで使用するだけでアクセスできます。Mathjava.lang.Math.PIimport static java.lang.Math.PIPI

于 2013-01-19T03:03:58.370 に答える