java.lang.Void 와 void 의 비교 및 사용

3244 단어 Java
void 키 워드 는 함수 가 결 과 를 되 돌려 주지 않 았 음 을 나타 내 며 자바 의 키워드 입 니 다.
java.lang.Void 는 일종 의 유형 입 니 다.예 를 들 어 Void 에 할당 null 을 참조 합 니 다.
Void nil = null;

Void 클래스 의 코드 를 통 해 볼 수 있 듯 이 Void 형식 은 계승 과 예화 가 불가능 합 니 다.
public final
class Void {

    /**
     * The {@code Class} object representing the pseudo-type corresponding to
     * the keyword {@code void}.
     */
    @SuppressWarnings("unchecked")
    public static final Class TYPE = (Class) Class.getPrimitiveClass("void");

    /*
     * The Void class cannot be instantiated.
     */
    private Void() {}
}

Void 는 함수 의 반환 결과 함수 가 null 로 되 돌아 가 는 것 을 표시 합 니 다(null 을 제외 하고 다른 형식 으로 되 돌아 갈 수 없습니다).
 Void function(int a, int b) {
    //do something
    return null;
 }

범 형 이 나타 나 기 전에 보 이 드 는 보통 반사 에 사용 된다.예 를 들 어 아래 코드 는 void 형식 으로 되 돌아 가 는 방법 명 을 인쇄 합 니 다.
public class Test {
    public void print(String v) {}

    public static void main(String args[]){
        for(Method method : Test.class.getMethods()) {
            if(method.getReturnType().equals(Void.TYPE)) {
                System.out.println(method.getName());
            }
        }
    }
}

범 형 이 나타 나 면 어떤 장면 에 서 는 Void 타 입 을 사용 합 니 다.예 를 들 어Future결 과 를 저장 하 는 데 사용 합 니 다.Future 의 get 방법 은 결 과 를 되 돌려 줍 니 다(유형 은 T).
하지만 조작 이 값 을 되 돌려 주지 않 았 다 면?이 경우Future로 표시 할 수 있다.get 호출 후 결과 계산 이 완료 되면 null 로 돌아 갑 니 다.
또한 Void 는 값 이 없 는 Map 에 도 사 용 됩 니 다.예 를 들 어Map이렇게 map 는Set똑 같은 기능 을 가지 게 됩 니 다.
따라서 범 형 을 사용 할 때 함수 가 결 과 를 되 돌려 주지 않 거나 대상 이 값 이 필요 하지 않 을 때 자바.lang.Void 형식 으로 표시 할 수 있 습 니 다.
참고:
java.lava.Void 와 void 의 비교,http://stackoverflow.com/questions/10839042/what-is-the-difference-between-java-lang-void-and-void
함수 반환 void 를 어떻게 판단 합 니까?http://stackoverflow.com/questions/1924253/how-to-determine-by-reflection-if-a-method-returns-void

좋은 웹페이지 즐겨찾기