Probleme bei der Übergabe einer Variable

fLooojava

Bekanntes Mitglied
Hi Community,

ich habe eine getter & setter Methode, mitdem ich den Wert einer Seekbar an eine andere Methode weitergebe.
Java:
    public void setBrightness(int progress){
 		bright =progress;
 	}
 //getter
 public int getBrightnessvalue(){
  		return bright;
 }

Nun initialisiere ich ein neuer String mit state und füge den int-Wert, den ich von der getter Methode bekomme dem String bei, indem ich ihn zunächst in einen String umwandle. Soweit so gut, mein TextView wird richtig angezeigt. Beispielsweise "state1123". Wenn ich aber bei meiner sendValue Methode die Variable value verwenden möchte, passiert nichts. Übergebe ich meiner sendValue Methode also "value" geschieht leider nichts, schreibe ich es aber hart kodiert rein - sendValue("state1123") - klappt es wunderbar. Weshalb funktioniert hier meine Variablenübergabe nicht, wobei ich überprüfe, ob mein String value korrekt ist, indem ich ihn anzeigen lasse? UND er korrekt ist? ???:L :bahnhof:


Java:
String value = state+String.valueOf(getBrightnessvalue());
    		test.setText(state+String.valueOf(getBrightnessvalue()));
        	sendValue(value);

Würde mich über Tipps freuen!

Grüße
 

fLooojava

Bekanntes Mitglied
Hallo Harry Kane,

tut mir leid, ich dachte dies genügt. Hier noch weiterer Code:

Java:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        progress = progress *20;
       setBrightness(progress);
       
        
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
    

    	if(getState()=="red"){
        	String value = state+String.valueOf(getBrightnessvalue());
    		test.setText(state+String.valueOf(getBrightnessvalue()));
        	sendValue(value);
        } else if (getState() =="green"){
        	String value = state+String.valueOf(getBrightnessvalue());
        	sendValue(value);
        } else if (getState() =="blue"){
        	String value = state+String.valueOf(getBrightnessvalue());
        	sendValue(value);
        }
    }
});

.. code ...

Java:
 public void setBrightness(int progress){
 		bright =progress;
 	}
 //getter
 public int getBrightnessvalue(){
  		return bright;
 }

Java:
 public void setState(String statecolor){
	  state = statecolor;
  }
  public String getState(){
	  return state;
  }

Hilft dir das? Gibt eigentlich nicht mehr Code, die diesen Fehler ansprechen. Die sendValue Methode hat ja nichts damit zu tun.
 

SilverClaw

Aktives Mitglied
Das glaube ich nicht!
"equals" vergleicht die Inhalte der Strings
"==" vergleicht die Objektreferenzen

Glaub es ruhig, das Problem ist nämlich, es stimmt MANCHMAL, was wohl irgendwas damit zu tun hat, dass Java Strings in einem extra Pool vorhält. Wollte einem Nachhilfeschüler auch zeigen, dass == mit Strings nicht klappt und dann gab es doch true aus...:eek:
Aber um sich drauf zu verlassne, sollte man bei equals bleiben. ;)
 

VfL_Freak

Top Contributor
Moin,

Glaub es ruhig, das Problem ist nämlich, es stimmt MANCHMAL, was wohl irgendwas damit zu tun hat, dass Java Strings in einem extra Pool vorhält. Wollte einem Nachhilfeschüler auch zeigen, dass == mit Strings nicht klappt und dann gab es doch true aus...:eek:
Natürlich wird dann TRUE zurückgegeben, wenn die REFERENZEN gleich sind!
Das hat aber nach wie vor, nichts mit dem Vergleich der Inhalte der Strings zu tun!

Hier noch mal zwei weitere Links, die es ganz gut erklären :
equals in Java
How do I compare strings in Java? - Stack Overflow

Gruß
Klaus
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Hehe,

soweit zu

"Bei Java gibt es keine Pointer"

Nutzt einem trotzdem nichts. Wenn man das Prinzip Pointer nicht kapiert hat kann man halt nicht vernünftig programmieren. Egal welche Sprache.

Gruß

Claus
 

VfL_Freak

Top Contributor
Jungs, lest ihr eigtentlich die Links, die man postet ???:L :(
Es hat wirklich nichts mit den Pointern zu tun, die man von C/C++ kennt !!

Also nochmal:
Java:
String a = "foo";
String b = "foo";
// Die JVM sucht String-Literale zuerst im String-Pool !
// Wenn es dort gefunden wird, dann wird eine Referenz darauf an den zweiten String 'b' gegeben! 
ergo: if( a == b ) liefert TRUE
----------------------------
String a = "foo";
String b = new String( "foo" );
// Hier wird das "new String" im Heap erzeugt und die Referenz DARAUF an 'b'
// gegeben!  Dadurch hat also 'b' eine Referenz im Heap und NICHT im String-Pool.
// ==> 'a' zeigt auf den String-Pool, 'b' auf den Heap 
ergo: if( a == b ) liefert FALSE

Oder anders ausgedrückt: mittels „==“ wird (lediglich) getestet, ob die zu überprüfende Objekte das selbe Objekt (exakt am selben Ort im Speicher !) referenzieren.
Wenn beide eine gemeinsame Instanzhaben, dann (und nur dann) gibt ein „==“-Vergleich ein „True“ zurück. Nur die Klassenmethode "equals" vergleicht den INHALT der Strings!

Hoffe, dass es jetzt klarer geworden ist !
Gruß
Klaus
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Jungs, lest ihr eigtentlich die Links, die man postet ???:L :(
Es hat wirklich nichts mit den Pointern zu tun, die man von C/C++ kennt !!


Gruß
Klaus

Doch genau das hat es. Eine Referenz ist nunmal ein Pointer. Ein Pointer ist auch nichts anderes als ein Wert, nämlich die Speicheradresse. Vergleiche ich zwei Speicheradressen bekomme ich true wenn es die gleichen sind. Sind also zwei Strings an der gleichen Stelle im Speicher, dann sind sie natürlich auch die gleichen Strings.
Dummerweise ist das aber nicht umkehrbar. Das bedeuetet nämlich nicht, dass zwei Strings mit dem gleichen Inhalt auch an der gleichen Speicherstelle stehen.
Und wenn man das mal kapiert hat, dann leuchtet es auch ein warum man Strings nicht mit == vergleichen kann. Aber dazu gehört das Verständnis wie ein String im Speicher abgelegt ist, nämlich als ein Pointer auf einen Speicherbereich in dem lauter Zeichen stehen.

Gruß

Claus
 

VfL_Freak

Top Contributor
ok, so gesehen hast Recht ... hätte besser "Verwendung von" schreiben sollen....
Wenn hier jemand im Zusammenhang mit Java das Wort "Pointer" verwendet, meint er ja i. d. R. das "Call-by-reference", dass es eben in dem Sinne nicht gibt!

Leider sorgen die Begrifflichkeiten immer wieder (gerade auch bei Neulingen) für Verwirrung ...

Gruß
Klaus
 

kaoZ

Top Contributor
Nur nochmal zur Info,

Gleich und Identisch , sind 2 verschiedene Paar Schuhe !

Code:
==
Referenzgleichheit

Code:
.euqals(Object o);
Identitätsprüfung / Inhaltliche Übereinstimmung
Nur weil Zwillinge gleich aussehen sind es trotzdem nicht ein und die selbe Person ;)

oder mit anderen Worten

Referenziert das gleiche Objekt ist nicht das selbe wie, ist Identisch mit einem Objekt


Kleiner Tipp noch für den TO
[TIPP]Wenn man Instanzen von eigens erstellten Objekten vergleichen will sollte man Grundsätzlich IMMER

Java:
.equals(Object o);
.hashcode();
überschreiben !!

Da die Standardimplementierung von .equals(Object o); der Klasse Object nichts anderes macht als einen Referenzvergleich ![/TIPP]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
B Variablen Probleme mit Eclipse Java Basics - Anfänger-Themen 6
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
I Probleme bei Verzeichnissanalyse Java Basics - Anfänger-Themen 12
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
H Probleme mit Klassen...oder: Eine Uhr Java Basics - Anfänger-Themen 9
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Probleme mit Eclipse oder der URL Klasse Java Basics - Anfänger-Themen 5
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
W Methoden Probleme mit der Scanner Methode Java Basics - Anfänger-Themen 2
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
L If Anweisung mit ArrayList Probleme Java Basics - Anfänger-Themen 6
littles_de Simbad Simulator probleme mit Sensordaten... Java Basics - Anfänger-Themen 0
M Erste Schritte Probleme beim Verknüpfen von Methoden Java Basics - Anfänger-Themen 15
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben