は私がインタビューテストを持っていたし、次のコードを見た:Java Genericsの値。 <SomeValue>
EDIT:
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());
}
}
私は見たことがなかったのJavaのジェネリックのような
Value.<SomeValue>
テストが持つ値クラスを実装することです上記のユニットテストコード。私は(実装が必要)以下の値のメソッドシグネチャを把握しようとした
:
public interface Value<T> {
public boolean hasValue();
public Value<T> createEmptyValue();
}
いずれかが知っているが、助けてください?
はあなたに
EDITありがとう:
public class Value<T> {
public boolean hasValue(){}
public static <M> Value<M> createEmptyValue(){}; //need <M>
}
キーの構文は知って@marlon以下の回答によると、このようにする必要があります:
Value.<SomeValue> //ClassName.<Type>method
はの静的メソッドを呼び出すための方法でありますパラメータ化された引数を持つクラス。
EDIT:@ snipes83によると、パラメータ化された引数を持つクラスの非静的メソッドを呼び出す構文です。
SomeObject.<Type>method
それはタイプミスだろうか? '値 .createEmptyValue()'が理にかなっています。 –
Snps
ホワイトボードコーディングですか? 多分、それは定義によって何でもかまいませんが、その型の値を提供することを意味するだけですが、型は本当に重要ではありません。 これは私がその場合に想定しているものです。 – clement
ええ;好奇心をそそる自分。 –