code

Java에서 Void 클래스의 필요성은 무엇입니까?

codestyles 2020. 12. 24. 23:45
반응형

Java에서 Void 클래스의 필요성은 무엇입니까?


이 질문에 이미 답변이 있습니다.

java.lang.VoidJava 의 클래스 명확하지 않습니다 . 누구든지 예를 들어 이에 대해 자세히 설명 할 수 있습니다.


또한 Void.TYPE리플렉션을 사용하여 반환 유형을 테스트하는 데 유용합니다.

public void foo() {}
...
if (getClass().getMethod("foo").getReturnType() == Void.TYPE) ...

무언가에 대해 void를 반환하는 제네릭을 원한다고 가정하십시오.

abstract class Foo<T>
{
    abstract T bar();
}

class Bar
    extends Foo<Void>
{
    Void bar()
    {
        return (null);
    }
}

실제로 void.class가 정말 유용한 실용적인 경우가 있습니다. 클래스 필드에 대한 어노테이션을 작성해야하고 필드에 대한 정보를 얻기 위해 필드의 클래스를 정의해야한다고 가정하십시오 (예 : 필드가 열거 형인 경우 잠재적 값 목록을 가져 오기 위해). 이 경우 다음과 같은 것이 필요합니다.

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PropertyResourceMapper
{
    public Class acceptedValues() default void.class;
}

다음과 같이 사용됩니다.

@PropertyResourceMapper(acceptedValues = ImageFormat.class, description = "The format of     the image (en example, jpg).")
private ImageFormat format;

나는 이것을 사용하여 독점 형식으로 클래스의 사용자 지정 serializer를 만들었습니다.


로부터 자바 문서 :

public final class Void
extends Object

Void 클래스는 Java 키워드 void를 나타내는 Class 객체에 대한 참조를 보유하는 인스턴스화 할 수없는 플레이스 홀더 클래스입니다.

static Class<Void> TYPE 

기본 Java 유형 void를 나타내는 Class 객체입니다.

TYPE
public static final Class<Void> TYPE

기본 Java 유형 void를 나타내는 Class 객체입니다.

참조 URL : https://stackoverflow.com/questions/2352447/what-is-the-need-of-void-class-in-java

반응형