Java Generics Value. <SomeValue>

Ich hatte einen Interviewtest und sah den folgenden Code:

BEARBEITEN:

public class TestValue {
    private Value<SomeValue> defaultValue;

    @Test
    public void Empty_Value_Has_No_Value() {
        Assert.assertFalse(Value.<SomeValue> createEmptyValue()
            .hasValue());
    }

    @Test
    public void Default_Value_IsEmpty() {
        Assert.assertEquals(Value.<SomeValue> createEmptyValue(),
            defaultValue);
    }

    @Test
    public void Non_Empty_Value_Has_Value() {
        Assert.assertTrue(new Value<SomeValue>(true, new SomeValue())
            .hasValue());
    }
}

Ich hatte Java noch nie generisch gesehen

Value.<SomeValue>

Der Test besteht darin, die Wertklasse mit dem oben angegebenen Einheitentestcode zu implementieren.

Ich habe versucht, die Value-Methodensignatur unten herauszufinden (Implementierung erforderlich):

public interface Value<T> {

    public boolean hasValue();
    public Value<T> createEmptyValue();
}

Weiß jemand, bitte helfen Sie?

Vielen Dank

EDIT: Sollte laut Antworten unter @marlon so sein

public class Value<T> {

    public boolean hasValue(){}
    public static <M> Value<M> createEmptyValue(){}; //need <M>
}

Die Schlüsselsyntax zu wissen:

Value.<SomeValue>  //ClassName.<Type>method

Auf diese Weise können Sie die statische Methode einer Klasse mit einem parametrisierten Argument aufrufen.

EDIT: laut @ snipes83 Syntax zum Aufrufen einer nicht statischen Methode einer Klasse mit parametrisiertem Argument.

SomeObject.<Type>method

Antworten auf die Frage(4)

Ihre Antwort auf die Frage