Wartość Java Generics. <SomeValue>
Miałem test wywiadu i zobaczyłem następujący kod:
EDYTOWAĆ:
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());
}
}
Nigdy nie widziałem Java generic
Value.<SomeValue>
Test polega na wdrożeniu klasy Value z podanym powyżej kodem testu jednostki.
Próbowałem znaleźć podpis metody wartości poniżej (wymaga implementacji):
public interface Value<T> {
public boolean hasValue();
public Value<T> createEmptyValue();
}
Ktoś wie, proszę o pomoc?
Dziękuję Ci
EDYCJA: Powinny być takie jak poniżej, zgodnie z odpowiedziami @marlon
public class Value<T> {
public boolean hasValue(){}
public static <M> Value<M> createEmptyValue(){}; //need <M>
}
Składnia klucza, aby wiedzieć:
Value.<SomeValue> //ClassName.<Type>method
jest sposobem wywołania metody statycznej klasy z parametryzowanym argumentem.
EDYCJA: zgodnie z @ snipes83, składnia do wywołania niestatycznej metody klasy z parametryzowanym argumentem.
SomeObject.<Type>method