• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

lokale Variable bei Optional verwenden

H

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

Optional ifpresentorelse:
        final int i;

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

        emptyOptional.ifPresentOrElse((c) -> {
            i = 2;
        }, () -> {
            i = 2;
        });

Vielen Dank!





 
Beste Antwort
Flown
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;
});
mihe7

mihe7

Top Contributor
War davon ausgegangen, dass das nur als Beispielbelegung gedacht war und die Frage im Titel im Vordergrund stand.
 
H

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

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
B

Barista

Bekanntes Mitglied
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");
    });

}
 
B

Barista

Bekanntes Mitglied
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");
    });
}
 
Ä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
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
I 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
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
E Variable in einer Methode Allgemeine Java-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben