【发布时间】:2023-02-19 15:12:46
【问题描述】:
我希望第一个是正确的。
作为ZonedDateTime implements ChronoZonedDateTime<LocalDate>,我尝试使用后者作为类型参数。我想这由于类型擦除而不起作用,但我不确定。
但只有第三个范围被正确编译。 你能解释一下为什么吗?
import org.apache.commons.lang3.Range;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.time.chrono.ChronoZonedDateTime;
public class Test {
public static void main(String[] args) {
Range<ZonedDateTime> range1 = Range.between(ZonedDateTime.now(), ZonedDateTime.now());
Range<ChronoZonedDateTime<LocalDate>> range2 = Range.between(ZonedDateTime.now(), ZonedDateTime.now());
Range<ChronoZonedDateTime<?>> range3 = Range.between(ZonedDateTime.now(), ZonedDateTime.now());
}
}
【问题讨论】:
标签: java generics apache-commons