Java 8 Ist es möglich, die ausgeführte Funktion irgendwie zu ändern, indem sie den Wert einer Variablen überprüft?
Ratewio
Java 8 Ist es möglich, die ausgeführte Funktion irgendwie zu ändern, indem sie den Wert einer Variablen überprüft?
Beispiel: abhängig vom Wert der Variable boolean multithread; sollte als falsch ausgewertet werden: myClass.MyFuncGetList(anything).stream().unordered().filter().anyMath().collect()......... usw. sollte als wahr ausgewertet werden: myClass .MyFuncGetList (alles).parallelStream().unordered().filter().anyMath().collect()......... usw. Ich möchte so etwas wie: myList.(multithread ? parallelStream() : stream( ) .unordered().filter().anyMath().collect().........etc oder myList(multithread ? .parallelStream() : .stream( ) ).unordered().filter() .anyMath().collect().........etc oder myList (multithread ? .parallelStream() : .stream() ) .unordered() .filter() .anyMath() .collect(). ........ usw. aber solche Optionen funktionieren nicht, Eschenstumpf das alles kann man in mehreren Zeilen schreiben, ein Objekt deklarieren, aber wenigstens durchschreiben wenn sonst aber ich will es kurz haben.
Antworten:
pok pokli
Ich verstehe nicht ganz (vielleicht bin ich dumm). Aber wenn wie boolean multithread = true; einer wird ausgeführt, wenn falsch, der andere ist dann möglich durch if if(multithread){ //if true myClass.MyFuncGetList(anything).parallelStream().unordered().filter().anyMath().collect()... .and t .n } else { //if false myClass.MyFuncGetList(anything).stream().unordered().filter().anyMath().collect()....etc } Xs viel weniger, wahrscheinlich so viel einfacher :)
Erleuchtet
Liste list = myClass.MyFuncGetList(alles); Streamstream = Multithread? list.parallelStream() : list.stream(); stream.unordered().filter().anyMath().collect();