lokale Variable bei Optional verwenden

Harald123

Mitglied
Hallo zusammen,

ist es möglich bei diesem Ausdruck den Wert der lokalen Variable i trotzdem zu ändern?

Hier gibt es bei Zeile 6 und 8 den Fehler:
The final local variable i cannot be assigned, since it is defined in an enclosing type

[CODE lang="java" title="Optional ifpresentorelse" highlight="6, 8"] final int i;

final Optional<String> emptyOptional = Optional.empty();

emptyOptional.ifPresentOrElse((c) -> {
i = 2;
}, () -> {
i = 2;
});[/CODE]

Vielen Dank!





 
Beste Antwort
Ein gutes altes if-else Konstrukt ist eigentlich hier am saubersten, aber wenn du schon fragst:
Java:
final int i = opt.map(s -> {
  System.out.println("if");
  return 2;
}).orElseGet(() -> {
  System.out.println("else");
  return 3;
});

Harald123

Mitglied
Ja, es war als Beispielbelegung gedacht.

Die vorgeschlagenen Lösungen funktionieren, vielen Dank!
Nur waren im originalen Code auch weitere Anweisungen dabei, zB:

Java:
final int i;

        final Optional<String> emptyOptional = Optional.empty();

        emptyOptional.ifPresentOrElse((c) -> {
            i = 2;
            System.out.print("if");
        }, () -> {
            i = 3;
             System.out.print("else");
        });

Ist so etwas bei
Java:
final int i = opt.map(s -> 2).orElse(3);
möglich ? Habe es über eine zusätzliche Methode geschafft, wollte es jedoch lieber in diesem Block haben.

Mit einer Instanzvariable geht alles mit ifPresentOrElse wunderbar , nur es entstand ein anderes Problem, das jetzt hier nicht relevant ist.
 

Flown

Administrator
Mitarbeiter
Ein gutes altes if-else Konstrukt ist eigentlich hier am saubersten, aber wenn du schon fragst:
Java:
final int i = opt.map(s -> {
  System.out.println("if");
  return 2;
}).orElseGet(() -> {
  System.out.println("else");
  return 3;
});
 
Beste Antwort

Barista

Top Contributor
[CODE lang="java" title="Lösung mit Array (hässlich)"]public static void main(String[] args) {

final int[] holderArray = new int[1];

final Optional<String> emptyOptional = Optional.empty();

emptyOptional.ifPresentOrElse((c) -> {
holderArray[0] = 2;
System.out.print("if");
}, () -> {
holderArray[0] = 3;
System.out.print("else");
});

}
[/CODE]
 

Barista

Top Contributor
[CODE lang="java" title="Lösung mit Halter-Klasse (mutable int)"]static class IntHolder {
public int value;
}

public static void main(String[] args) {

final IntHolder intHolder = new IntHolder();

final Optional<String> emptyOptional = Optional.empty();

emptyOptional.ifPresentOrElse((c) -> {
intHolder.value = 2;
System.out.print("if");
}, () -> {
intHolder.value = 3;
System.out.print("else");
});
}
[/CODE]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
M Lokale Maxima und Minima in Wertereihe Allgemeine Java-Themen 15
M java.awt. Desktop browse lokale datei aus jar Allgemeine Java-Themen 4
B globale und lokale Variablen Allgemeine Java-Themen 17
R in einem neuen Runnable() eine lokale Varibale verwenden Allgemeine Java-Themen 2
F Warum lokale Konstanten klein schreiben? Allgemeine Java-Themen 4
W Zugriff auf lokale serielle Schnittstelle via Applet Allgemeine Java-Themen 3
flashfactor Bin. Bild aus SAP in eine lokale Datei speichern Allgemeine Java-Themen 5
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
A Variable in if initialisieren Allgemeine Java-Themen 23
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
G Variable global nutzen Allgemeine Java-Themen 4
V Variable vom Typ String zum Typen "Message" konve Allgemeine Java-Themen 2
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
G Speicherverbrauch einer Variable Allgemeine Java-Themen 2
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
T JNI Referenz auf Variable in Java? Allgemeine Java-Themen 2
G Überprüfen, ob Variable ein Array ist? Allgemeine Java-Themen 5
R Member-Variable erzwingen Allgemeine Java-Themen 17
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
O Future Variable Allgemeine Java-Themen 4
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
loadbrain KeyEvent mit Variable verknüpfen Allgemeine Java-Themen 4
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
G Variable wird ignoriert - warum ? Allgemeine Java-Themen 36
L ctrl-z wird nicht in Variable gespeichert Allgemeine Java-Themen 4
G Variable Anzahl JTextfleder Allgemeine Java-Themen 3
R Wenn Variable = wat ist Allgemeine Java-Themen 7
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben