परिवर्तित करने का अच्छा तरीका Optional<Integer>
से Optional<Long>
को परिवर्तित करने के लिए मैं एक स्वच्छ और कोड-कुशल तरीका खोजने का प्रयास कर रहा हूं। मैं जावा 7 में गुवा के साथ काम कर रहा हूं।वैकल्पिक <Integer> को वैकल्पिक <Long>
तो कोड में एक ही स्थान पर मैं एक वैकल्पिक पूर्णांक
बनाया है और एक अन्य क्षेत्र में मैं एक वैकल्पिक तक यह की जरूरत है। में सबसे अच्छी बात मैं के साथ आ सकता है यह है:
Optional<Long> optionalLong = optionalInt.transform(new Function<Integer, Long>() {
@Override
public Long apply(Integer inputInt) {
if (inputInt != null)
return inputInt.longValue();
else
return null;
}
});
लेकिन यह बोझिल है, खासकर अगर आप समझते हैं कितना आसान है जब मैं आदिम प्रकार उपयोग कर रहा था प्रकार कास्ट करने के लिए किया गया था।
वहां कोई अच्छा विचार है?
जावा 8 का उपयोग करें यह केवल 'वैकल्पिकInt.map (i -> (लंबा) i) है; ' –
आपके फ़ंक्शन में, आपको' null': 'Optional.absent() के लिए परीक्षण करने की आवश्यकता नहीं है। ...) 'कुछ भी नहीं करता है। –
@ पीटर Lawrey या 'वैकल्पिकInt.map (इंटीजर :: longValue)' – blgt