이런 식으로 사용할 때 :
import static com.showboy.Myclass;
public class Anotherclass{}
무슨 차이점이 있니?import static com.showboy.Myclass
과import com.showboy.Myclass
?
만나다선적 서류 비치
정적 가져 오기 선언은 다음과 같습니다. 정상적인 수입과 비슷하다. 선언. 정상적인 수입이있는 곳 선언은 클래스를 가져옵니다. 패키지를 사용하도록 허용 패키지 자격없이 정적 가져 오기 선언 가져 오기 클래스의 정적 멤버 그들은 수업없이 사용된다. 자격.
언제 정적 가져 오기를 사용해야합니까? 아주 조심스럽게! 네가 할 때만 사용해라. 그렇지 않으면 지역 선언을 유혹해야한다. 상수의 사본, 또는 남용 상속 (상수 인터페이스 안티 패턴). 즉, 그것을 사용하십시오. 잦은 액세스가 필요할 때 하나 또는 두 개의 정적 멤버 수업. 정적을 과도하게 사용하면 가져 오기 기능을 사용하면 프로그램을 읽을 수없고 유지할 수없는, 네임 스페이스를 모든 정적 멤버. 독자 귀하의 코드 (귀하, 몇 개월 당신이 그것을 쓴 후에) 알지 못할 것입니다. 정적 멤버가 오는 클래스 에서. 모든 정적 가져 오기 수업의 멤버가 될 수 있습니다. 특히 가독성에 해롭다. 한두 명의 회원 만 있으면됩니다. 개별적으로 가져 오십시오. 익숙한 적절하게, 정적 가져 오기로 만들 수 있습니다. 귀하의 프로그램을보다 읽기 쉽도록 반복의 상용구 제거하기 클래스 이름의.
당신이 말하는 두 가지 수입 간에는 차이가 없습니다. 그러나 정적 가져 오기를 사용하여 다른 클래스의 정적 멤버에 대한 규정되지 않은 액세스를 허용 할 수 있습니다. 내가 이렇게해야만했던 곳 :
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;
}
코드에서 다른 클래스의 상수를 자주 사용하는 경우와 정적 가져 오기가 모호하지 않은 경우에 유용합니다.
Btw, 귀하의 예제에서 "import static org.example.Myclass;" 작동하지 않습니다 : import는 클래스를위한 것이고, import static은 클래스의 정적 멤버를위한 것입니다.
정적 가져 오기의 기본 개념은 정적 클래스, 정적 변수 또는 열거 형을 사용할 때마다 가져올 수 있고 일부 입력에서 자신을 저장할 수 있다는 것입니다.
나는 예를 들어 나의 요점을 자세히 설명 할 것이다.
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가 쇼 클래스의 내부 클래스 나 멤버가 아니라고 가정)
나는 네가 의미 한 것 같아.
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");
}
}
클래스 내부에서 정적 필드 및 메서드가 있다고 가정 해 보겠습니다.MyClass
라는 패키지 안에myPackage
직접 입력하여 액세스 할 수 있습니다.myStaticField
또는myStaticMethod
매번 타이핑하지 않고MyClass.myStaticField
또는MyClass.myStaticMethod
.
참고 :import myPackage.MyClass
또는myPackage.*
다른 자원에 액세스하기위한
그만큼static
수정 자 이후import
클래스의 정적 필드를 검색 / 사용하기위한 것입니다. 내가 사용하는 한 영역import static
는 클래스에서 상수를 검색하기위한 것입니다.
우리는 또한import static
정적 메서드에. 반드시 입력하십시오.import static
때문에static import
잘못된 것입니다.
무엇입니까static import
에서 Java - JavaRevisited- 더 많은 것을 알 수있는 아주 좋은 자료import static
.
include
루비에서! - Chloe