/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
object[] to String
Fra : bah


Dato : 14-11-01 18:58

Hej! jeg har nogen stringe i en object[] array. Jeg kan godt hive dem ud med
toString(). Men det jeg får, er ikke den rigtige string men en kode for den
string. Er der nogen der ved hvordan man får den reelle String ud af object
og ikke en java repræsentation af Stringen?

Mvh/Emil



 
 
Martin Ehmsen (14-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 14-11-01 19:10

bah wrote:

> Hej! jeg har nogen stringe i en object[] array. Jeg kan godt hive dem
ud med
> toString(). Men det jeg får, er ikke den rigtige string men en kode
for den
> string. Er der nogen der ved hvordan man får den reelle String ud af
object
> og ikke en java repræsentation af Stringen?

Du skal typecaste dine objekter, fx med følgende:
String element = (String) objectarray[i];


Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Jonas Kongslund (14-11-2001)
Kommentar
Fra : Jonas Kongslund


Dato : 14-11-01 21:22

on Wednesday 14 November 2001 19:09, Martin Ehmsen <thames@get2net.dk>
wrote:

> Du skal typecaste dine objekter, fx med følgende:
> String element = (String) objectarray[i];

Dette er ikke nødvendigt pga. polymorfi og det faktum at alle metoder i
Java er virtuelle. Test selv med denne klasse.

public class Main
{
public static void main(String[] args)
{
Object[] objects = {"Dette", "er", "en", "test"};
for (int i=0; i<objects.length; i++) {
System.out.println(objects[i]);
}
}
}

--
Jonas Kongslund <jonas(at)kongslund.dk> XNS: =Jonas Kongslund

Digital Rights - raising awareness of rights in the digital world
http://www.digitalrights.dk

Martin Ehmsen (14-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 14-11-01 21:32

Jonas Kongslund wrote:

> on Wednesday 14 November 2001 19:09, Martin Ehmsen
<thames@get2net.dk>
> wrote:
>
>> Du skal typecaste dine objekter, fx med følgende:
>> String element = (String) objectarray[i];
>
> Dette er ikke nødvendigt pga. polymorfi og det faktum at alle metoder
i
> Java er virtuelle. Test selv med denne klasse.

Dette er jeg udemærket klar over.
Men i andre situationer og af andre grunde kan du blive nødt til at
typecaste for at kunne tilgå nogle metoder.
Grunden til at dit eksempel går godt, er at alle klasser arver Objects
toString() metode.
Hvis du havde følgende:

Object[] array = {new MinKlasse(1), new MinKlasse(2),...,new
MinKlasse(n)};
array[2].minMetode();

Så vil du få en fejl.

Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Jonas Kongslund (14-11-2001)
Kommentar
Fra : Jonas Kongslund


Dato : 14-11-01 21:42

on Wednesday 14 November 2001 21:31, Martin Ehmsen <thames@get2net.dk>
wrote:

> Grunden til at dit eksempel går godt, er at alle klasser arver Objects
> toString() metode.

Var det ikke også det spørgeren spurgte om eller har jeg misforstået hans
spørgsmål?

--
Jonas Kongslund <jonas(at)kongslund.dk> XNS: =Jonas Kongslund

Digital Rights - raising awareness of rights in the digital world
http://www.digitalrights.dk

Martin Ehmsen (14-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 14-11-01 21:47

Jonas Kongslund wrote:
>> Grunden til at dit eksempel går godt, er at alle klasser arver
Objects
>> toString() metode.
>
> Var det ikke også det spørgeren spurgte om eller har jeg misforstået
hans
> spørgsmål?

Jeg er bange for at du har misforstået ham. Han har prøvet toString()
på sine objekter, men vil gerne have det oprindelige String objekt og
ikke en ny repræsentation af sit String objekt.

Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Christian Holm (15-11-2001)
Kommentar
Fra : Christian Holm


Dato : 15-11-01 02:26

"Martin Ehmsen" <thames@get2net.dk> wrote in message
news:9sul79$gcu$1@sunsite.dk...
> Jeg er bange for at du har misforstået ham. Han har prøvet toString()
> på sine objekter, men vil gerne have det oprindelige String objekt og
> ikke en ny repræsentation af sit String objekt.

Er String ikke immutable? Så

objects[i].toString() er det samme som (String) objects[i]

Christian



Martin Ehmsen (15-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 15-11-01 10:26

Christian Holm wrote:

> "Martin Ehmsen" <thames@get2net.dk> wrote in message
> news:9sul79$gcu$1@sunsite.dk...
>> Jeg er bange for at du har misforstået ham. Han har prøvet toString()
>> på sine objekter, men vil gerne have det oprindelige String objekt og
>> ikke en ny repræsentation af sit String objekt.
>
> Er String ikke immutable? Så

Jo

> objects[i].toString() er det samme som (String) objects[i]

Nej, det vil være en ny String (med samme indhold) men med en ny
adresse i hukommelsen og dermed ikke _den_ samme.

Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Filip Larsen (15-11-2001)
Kommentar
Fra : Filip Larsen


Dato : 15-11-01 15:13

Martin Ehmsen skrev

> > objects[i].toString() er det samme som (String) objects[i]
>
> Nej, det vil være en ny String (med samme indhold) men med en ny
> adresse i hukommelsen og dermed ikke _den_ samme.

Nej da. Her er implementeringen af java.lang.String.toString:

/**
* This object (which is already a string!) is itself returned.
*
* @return the string itself.
*/
public String toString()
{
return this;
}

Så den gør faktisk hvad Javadoc'en siger den gør ...


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Martin Ehmsen (15-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 15-11-01 15:27

Filip Larsen wrote:
> Nej da. Her er implementeringen af java.lang.String.toString:
>
> /**
> * This object (which is already a string!) is itself returned.
> *
> * @return the string itself.
> */
> public String toString()
> {
> return this;
> }
>
> Så den gør faktisk hvad Javadoc'en siger den gør ...

Okey, jeg trækker min ord i mig igen...
Jeg skal indrømme at jeg svarede uden at have kigget, det skal ikke ske
igen, men jeg mente det ville være logisk at den returnerede
this.clone(), men nej.

Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste