UFO ET IT

Java에서 일반 클래스에 대한 일반 생성자를 만드는 방법은 무엇입니까?

ufoet 2020. 12. 1. 20:09
반응형

Java에서 일반 클래스에 대한 일반 생성자를 만드는 방법은 무엇입니까?


KeyValue 클래스를 만들고 싶지만 일반적인 방식으로 작성했습니다.

public class KeyValue<T,E> 
{

    private T key;
    private E value;
    /**
     * @return the key
     */
    public T getKey() {
        return key;
    }
    /**
     * @param key the key to set
     */
    public void setKey(T key) {
        this.key = key;
    }
    /**
     * @return the value
     */
    public E getValue() {
        return value;
    }
    /**
     * @param value the value to set
     */
    public void setValue(E value) {
        this.value = value;
    }

    public KeyValue <T, E>(T k , E v) // I get compile error here
    {
        setKey(k);
        setValue(v);
    }
}

오류 : "Syntax error on token"> ",이 토큰 뒤에 식별자가 필요합니다."

그러면 Java에서 일반 생성자를 어떻게 만들어야합니까?


<T, E>생성자의 서명에서 제거해야합니다 . 이미 암시 적으로 존재합니다.

public KeyValue(T k , E v) // No compile errors here :)
{
    setKey(k);
    setValue(v);
}

다른 메소드를 작성한 것과 똑같은 방식으로 생성자를 작성하십시오.

public KeyValue(T k , E v) 
    {
        setKey(k);
        setValue(v);
    }

생성자는 다음과 같이 작성할 수 있습니다.

public<T,E> KeyValue(T k,E v){}

하지만 그럴 필요는 없습니다.public KeyValue(T k,E v)

참고 URL : https://stackoverflow.com/questions/8680442/how-to-create-a-generic-constructor-for-a-generic-class-in-java

반응형