このように使うと:
import static com.showboy.Myclass;
public class Anotherclass{}
違いは何ですかimport static com.showboy.Myclass
そしてimport com.showboy.Myclass
?
静的インポート宣言は次のとおりです。 通常のインポートと同様 宣言。通常の輸入先 宣言はからクラスをインポートする それらを使用できるようにするパッケージ パッケージの認定がなければ、 静的インポート宣言のインポート クラスからの静的メンバー クラスなしで使われるように 資格。
それではいつ静的インポートを使うべきですか? とても控えめに!あなたがしたいときだけそれを使用してください そうでなければローカルを宣言したくなります 定数のコピー、または悪用する 継承(定数インタフェース アンチパターン)言い換えれば、それを使用 頻繁なアクセスが必要なとき 1つか2つの静的メンバー クラス。静電気を使いすぎると 特徴を輸入して下さい、それはあなたを作ることができます プログラムが判読不能かつ保守不能 その名前空間をすべての インポートする静的メンバーの読者 あなたのコード(あなたも含めて、数ヶ月) あなたがそれを書いた後)知りません 静的メンバーが来るクラス から。すべての静的をインポートする クラスのメンバーは 読みやすさに特に有害です。 あなたが1人か2人のメンバーだけを必要とするならば、 個別にインポートしてください。中古 適切には、静的インポートは作ることができます プログラムをもっと読みやすくする 繰り返しの定型句を削除 クラス名
あなたが述べるこれら二つの輸入の間に違いはありません。ただし、静的インポートを使用して、他のクラスの静的メンバーへの限定されていないアクセスを許可することができます。私はこれをしなければならなかった場所:
import org.apache.commons.lang.StringUtils;
.
.
.
if (StringUtils.isBlank(aString)) {
.
.
.
私がすることができます:
import static org.apache.commons.lang.StringUtils.isBlank;
.
.
.
if (isBlank(aString)) {
.
.
.
静的インポートは、次の代わりにクラスの静的フィールド/メソッドをインポートするために使用されます。
package test;
import org.example.Foo;
class A {
B b = Foo.B_INSTANCE;
}
あなたは書ける :
package test;
import static org.example.Foo.B_INSTANCE;
class A {
B b = B_INSTANCE;
}
コード内で他のクラスの定数をよく使用する場合や、静的インポートがあいまいではない場合に役立ちます。
ところで、あなたの例では "import static org.example.Myclass;"機能しません:importはクラス用、import staticはクラスの静的メンバー用です。
静的インポートの基本的な考え方は、静的クラス、静的変数、またはenumを使用しているときはいつでも、それらをインポートして、入力しなくても済むということです。
例を挙げて説明します。
import java.lang.Math;
class WithoutStaticImports {
public static void main(String [] args) {
System.out.println("round " + Math.round(1032.897));
System.out.println("min " + Math.min(60,102));
}
}
静的インポートの同じコード
import static java.lang.System.out;
import static java.lang.Math.*;
class WithStaticImports {
public static void main(String [] args) {
out.println("round " + round(1032.897));
out.println("min " + min(60,102));
}
}
注意:静的インポートはあなたのコードを読みにくくすることがあります。
import static java.lang.Math
アスタリスクなしで? - Chris Middleton
import static com.showboy.Myclass "と" import com.showboy.Myclass "の違いは何ですか?
静的インポートはフィールドまたはメンバー型のインポートにのみ機能するため、最初のものはコンパイラエラーを生成するはずです。 (MyClassがshowboyの内部クラスまたはメンバーではないと想定します)
私はあなたが言ったことだと思う
import static com.showboy.MyClass.*;
これは、MyClassのすべての静的フィールドとメンバを、それらを修飾することなく実際のコンパイル単位で使用できるようにします。
のimport
Javaプログラマーがパッケージの修飾なしにパッケージのクラスにアクセスすることを許可します。
のstatic import
機能により、クラス修飾なしでクラスの静的メンバーにアクセスできます。
のimport
クラスとインタフェースへのアクセシビリティを提供します。static import
クラスの静的メンバーへのアクセス可能性を提供します。
例:
ありインポート
import java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
System.out.println("Hello");
System.out.println("Java");
}
}
あり静的インポート
import static java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
out.println("Hello");//Now no need of System.out
out.println("Java");
}
}
また見なさい:Java 5の静的インポートとは
という名前のクラス内に静的フィールドとメソッドがあるとします。MyClass
というパッケージの中myPackage
そして、あなたはタイプして直接それらにアクセスしたいです。myStaticField
またはmyStaticMethod
毎回入力せずにMyClass.myStaticField
またはMyClass.myStaticMethod
。
注:あなたがする必要がありますimport myPackage.MyClass
またはmyPackage.*
他のリソースにアクセスするため
のstatic
後修飾子import
クラスの静的フィールドを取得/使用するためのものです。私が使用する1つの分野import static
クラスから定数を取得するためのものです。
私達はまた適用してもいいですimport static
静的メソッド必ず入力してくださいimport static
なぜならstatic import
間違っている。
何ですかstatic import
Javaで - JavaRevisited - 詳細について知るための非常に良い情報源import static
。
include
Rubyで! - Chloe