문제

자바에서는 다음과 같은 코드를 작성할 수 있습니다. 라코 디스

그리고 작동합니다.이제 "true"값을 가진 객체가 있습니다.

어떻게 작동합니까?생성자를 통해 값을 전달할 필요가없는 이유는 무엇입니까?다음과 같이 : 라코 디스

또한 비슷한 방식으로 인스턴스화 할 수있는 사용자 정의 클래스를 만들 수 있습니까?그렇다면 그 이름은 무엇입니까?

그러면 다음과 같이 할 수 있습니다. 라코 디스

그러므로 나만의 래퍼 클래스가 있습니다.

감사합니다

도움이 되었습니까?

해결책

아니요 후자는 할 수 없습니다.

전자는 오토 박스 라고합니다. 자동 랩핑을 위해 Java v1.5에 도입되었으며 래퍼 대응 요소의 기본 요소입니다.

제네릭 및 / 또는 컬렉션을 사용할 때 오토 박싱의 이점을 명확하게 확인할 수 있습니다.

기사 출처 : J2SE 5.0 요약

"기본 유형의 Autoboxing 및 Auto-Unboxing" 샘플에는 다음이 있습니다.

이전 (오토 박스 추가) 라코 디스

이후 라코 디스

보시다시피 코드가 더 명확합니다.

문서의 마지막 참고 사항에 유의하십시오. <인용구>

그러면 언제 오토 박싱과 언 박싱을 사용해야할까요? 참조 유형과 프리미티브간에 "임피던스 불일치"가있는 경우에만 사용하십시오 (예 : 콜렉션에 숫자 값을 입력해야하는 경우). 과학 컴퓨팅 또는 기타 성능에 민감한 숫자 코드에 오토 박싱 및 언 박싱을 사용하는 것은 적절하지 않습니다. Integer는 int를 대체하지 않습니다. 오토 박싱과 언 박싱은 기본 유형과 참조 유형의 구분을 모호하게하지만이를 제거하지는 않습니다.

다른 팁

<인용구>

어떻게 작동하나요?

컴파일러 기능입니다.컴파일러는 자동으로 boxing-operation을 생성합니다.실제로 할 일은 생성하는 것입니다 라코 디스

이렇게하면 기존 (변경 불가능한) 인스턴스 Boolean.TRUE 및 Boolean.FALSE가 새 인스턴스를 만드는 대신 사용되기 때문입니다.

String 객체를 다음과 같이 만들 수있는 것과 같은 방법입니다. 라코 디스

정말 Java의 특전입니다.프리미티브 데이터 유형에 이미 사전 정의 된 래퍼가 있다는 점을 고려할 때 자신 만의 래퍼 클래스를 만드는 이유도 모르겠습니다 ...

이 기능은 Java 1.5에 추가되었으며 라고합니다.오토 박싱 .이러한 종류의 마법은 원시 값과 해당 래퍼에만 사용할 수 있습니다.

자바에서는 스스로 할 수 없습니다.그래도 원하는 경우 Scala 로 이동하는 것보다 좋습니다. 좋습니다.즉, 암시 적 전환 이라는 기능을 사용할 수 있습니다.다음은 귀하의 사례에 대한 간단한 예입니다. 라코 디스

아니요, 단지 컴파일러 마법 일뿐입니다.이를 특수한 경우 ( 오토 박스 라고 함)로 취급합니다.예를 들어 http://download.oracle.com/javase/1.5.0 / docs / guide / language / autoboxing.html .

오토 박스 라고하며기본적으로 컴파일러가 당신을 위해하는 일입니다.그것은 당신이 new Boolean( true ) 또는 (더 나은) Boolean.TRUE를 사용해야하기 전에 Java 5에서만 추가되었습니다.

아니요, 자신의 클래스에 대해 가질 수 없으며 기본 래퍼 클래스에 대해서만 수행됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top