Permalänk

[JAVA] list problem

Morn

Har en lista med objekt som har en variabel som jag vill ändra värde på. Låt oss säga att objektet är en produkt som har ett pris.
Nu vill jag ändra det priset, har getters/setters før alla variabler i objektet.

Gör lite loopar och sånt krims krams men linjen där problemet ligger ser ut så här:

this.objektList.get(target).setPris(this.objektList.get(target).getPris() + newObjekt.getPris());

Som ni ser så kastar jag in ett nytt prisobjekt i funktionen som skal justere det gamla prisobjektet, detta kan inte ändras.

Men borde inte den linjen fungera? Eller måste jag spara om objektet i listan?

EDIT: Kan tillägga att pris variabeln är en double.

EDIT2: Om jag skriver ut this.objektList.get(target).getPris() direkt efter jag adderat så visar den korrekt värde, men utanför klassen som håller prislistan så ändras inte värdet från det ursprungliga priset...

Permalänk
Medlem

Jag vet inte om jag förstår alls vad du vill göra eller ditt exempel.

Ditt exempel bör ändra priset på objektet i din lista som ligger på nummer "target" i din lista, till dess pris + newObjekt priset.

public static void main(String[] args) { List<TestClass> objektList = new ArrayList<TestClass>(); TestClass newObj2 = new TestClass(); newObj2.setPris(10d); objektList.add(newObj2); int target = 0; TestClass newObjekt = new TestClass(); newObjekt.setPris(20d); // Här är din rad, bara utan this objektList.get(target).setPris(objektList.get(target).getPris() + newObjekt.getPris()); System.out.println(objektList.get(target).getPris()); } private static class TestClass { private Double pris; private Double getPris() { return pris; } private void setPris(Double pris) { this.pris = pris; } }

Den skriver ut 30.0.
Kan du visa lite riktig kod?
Vad menar du med att det kan inte ändras?

Mitt tips är att du debuggar och kollar vad newObjekt.getPris är, även kollar vad target är, och kollar vad objektList.get(target).getPris() är.