1
한 유형의 주어진 Guava Range을 다른 유형의 범위로 변환하려면 어떻게해야합니까?구아바 범위를 다른 유형으로 변환
필자는 Predicates.compose와 비슷한 작성 방법을 기대합니다. 예를 들어 정수와 긴을 가지고 : 단위 테스트와
public static <F extends Comparable<F>, T extends Comparable<T>> Range<T> compose(Range<F> range,
Function<F, T> function) {
Range<T> result;
if (range.hasUpperBound() && range.hasLowerBound()) {
T upperEndpoint = function.apply(range.upperEndpoint());
T lowerEndpoint = function.apply(range.lowerEndpoint());
result = Range.range(lowerEndpoint, range.lowerBoundType(), upperEndpoint, range.upperBoundType());
} else if (range.hasUpperBound()) {
result = Range.upTo(function.apply(range.upperEndpoint()), range.upperBoundType());
} else if (range.hasLowerBound()) {
result = Range.downTo(function.apply(range.lowerEndpoint()), range.lowerBoundType());
} else {
result = Range.all();
}
return result;
}
:
@Test
public void testLongRangeToInteger() {
Integer inRange = 6;
Integer outOfRange = 3;
Range<Long> longRange = Range.atLeast(5l);
assertTrue(longRange.apply(inRange.longValue()));
assertFalse(longRange.apply(outOfRange.longValue()));
Function<Long, Integer> function = integerFromLongFunction();
Range<Integer> intRange = RangeExtended.compose(longRange, function);
assertTrue(intRange.apply(inRange));
assertFalse(intRange.apply(outOfRange));
}
public static Function<Long, Integer> integerFromLongFunction() {
return new Function<Long, Integer>() {
@Override
public Integer apply(Long input) {
return (input == null) ? null : input.intValue();
}
};
}
내 현재의 욕망에 Joda 시간을 변환 실제로
Range<Integer> intRange = Range.compose(Range.atLeast(10l),integerFromLongFunction);
은 내가 작성 방법을 썼다 그것은 밀리에 해당하는 것이지만, 단순화를 위해 Long/Integer에 예제를 썼습니다.
구아바가 가지고있는 것 같지만 아무데도 찾을 수 없습니다. 나는 v14를 사용하고 있지만 최신 v17 javadoc을 살펴보면 아무 것도 공개하지 않았다.