Effectivement, c'est depuis que je comil en 1.4.

Merci, je comprends mieux.
----- Original Message -----
From: "Guillaume Desnoix" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, February 20, 2003 4:52 PM
Subject: Re: Recherche d'eclaircissement StringBuffer.append(StringBuffer)


>
> Laurent For�t:
> > J'ai un StringBuffer auquelle je fais un append d'un autre StringBuffer,
ce
> > qui compile toujours tr�s bien car StringBuffer �tend la classe Object.
> > Or l'�x�cution est al�atoire en fonction des jre utiliser. Exemple :
> > StringBuffer buf1 =new StringBuffer("TITI");
> > StringBuffer buf2 =new StringBuffer("TOTO");
> > buf1.append(buf2);  //compile mais plante dans certaine jre.
> > L'une fait ce qu'on lui demande (appelle la m�thode toString() de buf2
et
> > append � buf1) , une autre me renverra une exception :
> > java.lang.NoSuchMethodError.
>
> L'erreur est informatique. Et previsible. Et deterministe. Et
reproductible.
>
> > Qui est ce qui a raison ? Qui a un avis sur la question ?
>
> Moi. Moi.
>
>
>
>
>
>
>
>
> Bon plus serieusement. Tu compiles en 1.4 et tu executes en 1.3 d'ou le
> probleme. En effet, la methode SB.append(SB) est toute nouvelle et
> n'existe pas en 1.3.
>
> Solutions:
> - tu compiles en 1.3
> - tu utilises les options -target 1.3 -source 1.3
> - tu explicites l'appel: buf1.append((Object)buf2);
> - ou encore buf1.append(buf2.toString());
>
> Ou bien tu veux un code performant:
> - tu renonces a la compatibilite 1.3
> - tu ecris ta propre methode
>      int la=buf1.length;
>      char[] ca=new char[la];
>      buf2.getChars(0,la,ca,0);
>      buf1.append(ca);
>    Evidement tu reutilises toujours le meme char[] (synchro ?)
>
> Guillaume
> http://www.jdistro.com/
>
>
>
>
>

Répondre à