오늘, 소스 코드를 확인할 때 Java.lang.void 클래스를 발견했습니다. 이것의 기능은 무엇입니까?
소스 코드를 통해 먼저 확인하십시오
패키지 java.lang;/** * {@code void} 클래스는 Java 키워드 * void를 나타내는 {@code class} 객체에 대한 * 참조를 보유 할 수없는 자리 표시 자 클래스입니다. * * @author unaccounted * @since jdk1.1 * /public finalclass void { /** * 키워드 {@code void}에 해당하는 의사 유형을 나타내는 {@code class} 개체. */ @suppresswarnings ( "확인되지 않은") 공개 정적 최종 클래스 <void> type = (class <void>) class.getPrimitiveClass ( "void"); / * * 공극 클래스를 인스턴스화 할 수 없습니다. */ private void () {}}소스 코드 에서이 클래스가 최종적이고 상속받을 수 없으며 구조는 비공개이며 새로울 수 없다는 것을 알 수 있습니다.
그렇다면이 범주의 기능은 무엇입니까?
java.lang.integer 클래스의 소스 코드는 다음과 같습니다.
우리는 int의 래퍼 클래스가 java.lang.integer라는 것을 알고 있습니다.
이것으로부터 우리는 java.lang.integer가 int의 래퍼 클래스임을 알 수 있습니다.
마찬가지로 Java.lang.void의 다음 소스 코드를 통해 java.lang.void가 void 키워드의 래퍼 클래스임을 알 수 있습니다.
public static final class <void> type = (class <void>) class.getPrimitiveClass ( "void");
무효 사용
무효 클래스는 비 이용성 자리 표시 자 클래스입니다. 메소드가 무효 유형을 반환하면 메소드는 널 유형 만 리턴 할 수 있습니다.
예는 다음과 같습니다.
public void test () {return null;}시나리오 사용 1 :
Future <void> f = pool.submit (new Callable () {@override public void call ()는 예외 {...... return null;}});예를 들어, 호출 가능한 인터페이스를 사용하면 인터페이스는 값을 반환해야하지만 실제 실행 후에는 반환 할 데이터가 없습니다. 현재 공극 유형을 리턴 유형으로 사용할 수 있습니다.
시나리오 사용 2 :
모든 방법을 반환 값으로 반영합니다.
공개 클래스 테스트 {public void hello () {} public static void main (string args []) {for (methys : test.class.getMethods ()) {if (method.getReturnType (). }}}}실행 결과 :
Mainhellowaiwaitwaitnotifynotifyall
추신 : 다음은 java.lang.void and void의 비교 및 사용을 소개합니다.
무효 키워드는 함수가 결과를 반환하지 않고 Java의 키워드임을 의미합니다.
java.lang.void는 유형입니다. 예를 들어, NULL 값을 공극 참조에 할당하십시오.
void nil = null;
무효 클래스의 코드를 통해 공극 유형을 상속 받거나 인스턴스화 할 수 없음을 알 수 있습니다.
public finalclass void { /** * 키워드 {@code void}에 해당하는 의사 유형을 나타내는 {@code class} 개체. */ @suppresswarnings ( "확인되지 않은") 공개 정적 최종 클래스 <void> type = (class <void>) class.getPrimitiveClass ( "void"); / * * 공극 클래스를 인스턴스화 할 수 없습니다. */ private void () {}}함수의 리턴 결과로서 void는 함수가 NULL을 반환 함을 나타냅니다 (NULL은 다른 유형을 반환 할 수 없음).
void 함수 (int a, int b) {// return null을 수행합니다. }제네릭이 나타나기 전에 Void는 일반적으로 반사에 사용되었습니다. 예를 들어, 다음 코드는 리턴 유형 void의 메소드 이름을 인쇄합니다.
공개 클래스 테스트 {public void print (string v) {} public static void main (string args []) {for (메소드 메소드 : test.class.getMethods ()) {if (method.getReturnType (). }}}} 제네릭이 나타나면 일부 시나리오에서는 void 유형이 사용됩니다. 예를 들어, Future<T> 결과를 저장하는 데 사용됩니다. Future 's get 메소드는 결과를 반환합니다 (t 형).
그러나 작업이 값을 반환하지 않으면 어떻게됩니까? 이 경우 Future<Void> 로 표시 될 수 있습니다. 호출 후 결과가 계산되면 돌아온 후 NULL이 반환됩니다.
또한 Void는 귀중한지도에서도 사용됩니다. 예를 들어, Map<T,Void> , 맵은 Set<T> 와 동일한 함수를 갖습니다.
따라서 제네릭을 사용하면 기능이 결과를 반환 할 필요가 없거나 객체에 값이 필요하지 않습니다. 이것은 java.lang.void 유형으로 표시 될 수 있습니다.
요약
위의 내용은 편집자가 소개 한 수업 분석 및 Java.lang.void 사용에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!