在Java中,由于類型擦除的原因,我們不能直接測試泛型的正確性。但是,我們可以通過一些方法來確保泛型的正確性。以下是一些建議:
extends
關鍵字來限制泛型類型參數必須是某個類的子類或實現某個接口。public class GenericBox<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
Number
類作為泛型類型參數,因為它是一個有界類型。public class NumericCalculator<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public T add(T other) {
return value.add(other);
}
}
public class GenericBoxTest {
@Test
public void testGenericBox() {
GenericBox<Integer> intBox = new GenericBox<>();
intBox.setValue(10);
assertEquals(10, intBox.getValue());
GenericBox<Double> doubleBox = new GenericBox<>();
doubleBox.setValue(10.5);
assertEquals(10.5, doubleBox.getValue(), 0.001);
}
}
總之,雖然不能直接測試泛型的正確性,但通過限制泛型類型參數、使用有界類型、編寫單元測試和使用靜態代碼分析工具,可以確保泛型代碼的正確性和健壯性。