30. april 2002 - 23:53
Der er
10 kommentarer og 1 løsning
konvertere object til integer
Hej Jeg har denne her: <% mindste_data = mindste.getObject("minekstern"); out.println(mindste_data + 200); %> Men den siger, at den ikke kan konvertere object til int. Hvad skal jeg gøre - har forsøgt med int mindste_Data = ....., men det hjælper heller ikke. Takker, Søren
Annonceindlæg fra Computerworld
30. april 2002 - 23:55
#1
Hvad type er dit object? Integer? I så fald out.println( ((Integer)mindste_data).intValue() + 200);
30. april 2002 - 23:58
#2
hvis mindste_data er et Integer Object, så siger du bare out.println(mindste_data.intValue()-200); hvis mindste_data f.eks. er et String object siger du: out.println(Integer.parseInt(mindste_data)-200); //der skal en try/catch rundt om p.s. Det er dårlig kode at bruge out.println() til at udskrive værdier med, det er meget besværligt at rette html bagefter.
30. april 2002 - 23:58
#3
ups glemte lige en typecast
Herligt. Eriks løsning virkede. Disky, jeg prøvede også begge dine løsninger, men fik følgende fejl: Method intValue() not found in class java.lang.Object. Incompatible type for method. Explicit cast needed to convert java.lang.Object to java.lang.String. Det skyldes jo nok, at jeg ikke gør det rigtigt ;-) Søren
Af en eller anden anden grund, kan jeg ikke "aflevere mine points" Prøver igen senere.
som jeg skrev i andet svar manglede jeg en typecast :)
Jeg ved bare ikke hvad en typecast er :-)?
Prøv lige at vise os en smule mere af koden, f.eks. hvad mindste og mindste_data er for typer. Så kan vi formentlig forklare dig hvad der sker. Måske vi endda kan forklare dig hvad en typecast er.
mindste_data = mindste.getObject("minekstern"); Mindste_data er definere som Object (Object mindste_data;), mindste som Resultset (ResultSet mindste = Statementmindste.executeQuery();), og minekstern er et numerisk felt i en database. M.v.h. Søren
Ok, har du noget der ligner Object mindste_data = mindste.getObject("minekstern"); så får du feltet tilbage som et objekt, der i realiteten enten er et Integer-objekt, eller et String-objekt - afhængig af typen i feltet. Men det er kun et Object. Du skal derfor direkte sige at du godt ved det er en Integer, og det gør ved fx Integer iobjekt = (Integer)mindste_data Du får så en exception, hvis det ikke er en Integer i virkeligheden, men det kan først opdages her. Tallet i en integer tages ud med iobjekt.intValue() og kan udskrives eller regnes videre på. Men da du nu ved det er et talfelt, så er det en direkte metode int i = mindste.getInt("minekstern"); som må være nemmere i dit tílfælde.
Tak for hjælpen, Erik og Disky. Much appreciated :-)
Kurser inden for grundlæggende programmering