Tôi đang cố tìm cách sạch và hiệu quả để chuyển đổi Optional<Integer>
thành Optional<Long>
. Tôi đang làm việc trong Java 7 với ổi.Cách tốt để chuyển đổi Tùy chọn <Integer> thành Tùy chọn <Long>
Vì vậy, ở một nơi trong mã Tôi có một số nguyên tùy chọn tạo
Và trong một khu vực khác tôi cần nó như một lâu tùy ý. Điều đẹp nhất tôi có thể đưa ra là thế này:
Optional<Long> optionalLong = optionalInt.transform(new Function<Integer, Long>() {
@Override
public Long apply(Integer inputInt) {
if (inputInt != null)
return inputInt.longValue();
else
return null;
}
});
Nhưng điều này là cồng kềnh, đặc biệt là nếu bạn xem xét cách dễ dàng là để đúc các loại khi tôi đã sử dụng các loại nguyên thủy.
Có ý tưởng hay nào không?
Sử dụng Java 8 nó chỉ là 'optionalInt.map (i -> (long) i);' –
Trong hàm của bạn, bạn không phải kiểm tra 'null':' Optional.absent(). Transform (...) 'không làm gì cả. –
@PeterLawrey hoặc 'optionalInt.map (Integer :: longValue)' – blgt