लौटने पर मेरे पास कई विधियां हैं, जो प्रत्येक वैकल्पिक स्ट्रिंग लौट रहे हैं। मैं तब कैसे गठबंधन करूं, ताकि जावा प्रत्येक विधि को कॉल करे, जब तक इसका नतीजा न हो?कैस्केड विधियों, प्रत्येक जावा 8 वैकल्पिक <>
मैं कुछ इस तरह से खत्म करना चाहते हैं, लेकिन वहाँ orElseFlatMap()
तरीका नहीं है:
import java.util.Optional;
public class OptionalCascade {
public static void main(String[] args) {
Optional<String> result =
// try to get a result with method A
methodA()
// if method A did not return anything, then try method B
.orElseFlatMap(methodB());
}
static Optional<String> methodA() {
return Optional.empty();
}
static Optional<String> methodB() {
return Optional.empty();
}
}
क्या आप परिणाम प्राप्त करते ही शॉर्ट-सर्किट करना चाहते हैं? उस स्थिति में आप केवल निर्माण में विधि आमंत्रण नहीं डाल सकते हैं। आपको लैम्बडास में कॉल लपेटना होगा (जैसे 'orElseGet (() -> methodB()' –
मैं बस पुराने पुराने के साथ रहूंगा यदि अन्यथा और नल :) – ZhongYu