الإيجاز مع Java 8's الاختياري و Stream::flatMap
عند العمل مع تدفقات Java 8، تحويل قائمة إلى اختياري
حل Java 16
يقدم Java 16 Stream.mapMulti، مما يتيح المزيد نهج موجز:
Optional result = things.stream()
.map(this::resolve)
.mapMulti(Optional::ifPresent)
.findFirst();
حل Java 9
يضيف JDK 9 تيارًا اختياريًا، مما يبسط المهمة:
Optional result = things.stream()
.map(this::resolve)
.flatMap(Optional::stream)
.findFirst();
حل Java 8]
في Java 8، يمكن اتباع النهج التالي:Optional result = things.stream()
.map(this::resolve)
.flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
.findFirst();
استخدام وظيفة مساعدة للتحويل اختياري إلى دفق:staticStream streamopt(Optional opt) { إذا (opt.isPresent()) إرجاع Stream.of(opt.get()); آخر إرجاع Stream.empty(); } نتيجة اختيارية = Things.stream () .flatMap(t ->streamopt(resolve(t))) .findFirst();
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3