commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas De Loof <nicolas.del...@capgemini.com>
Subject Re: [csv] j2se1.3 compatibility / header line writer
Date Mon, 22 May 2006 13:42:08 GMT

compiled on a JDK 1.4,  sb1.append(sb2) will not work on java 1.3 JRE : 
it requires append(StringBuffer).
compiled on a JDK 1.3, it is equivalent to a toString() call as 
append(Object) method is used by compiler. It will work on all JRE but 
will be non-optimal on JDK 1.4

Only two versions of the jar may solve this issue, or some JDK 
compatibility test :
<pseudo-code>
final static boolean jdk13 = 
System.getProperty("|java.vm.version"|).startWith("1.3");

if (jdk13) {
    stb1.append(stb2.toString());
} else {
    stb1.append(stb2);
}
</pseudo-code>

AFAIK, this code, compiled using JDK 1.4 will run under Java 1.3 without 
noSuchMethodException AND uses Java1.4 Stringbuffer optimizations

sebb a écrit :
> On 22/05/06, Nicolas De Loof <nicolas.deloof@capgemini.com> wrote:
>>
>>
>> >> It is supported in jdk1.3.. Just cast the stringbuffer passed in to
>> >> an object, so like
>> >> StringBuffer.append((Object) StringBuffer)). Much more efficient than
>> >> an if...
>> >>
>> >
>> > Surely a StringBuffer is already an Object?
>> >
>> > Or am I missing something here?
>> >
>> StringBuffer has a new method in Java 1.4 to append another Stringbuffer
>> without invoking it's toSring() method.
>> Code that uses StringBuffer.append(stb) and compiled by a JDK 1.4 will
>> not work on Java 1.3.
>> I miself recommand Using  "StringBuffer.append(stb.toString())" that
>> looks better than an apparently useless (Object) cast : checkstyle or
>> IDE may warn for unecessary cast.
>
> But that won't work so well on Java 1.4+.
>
> Can't one just use:
>
> sb1.append(sb2);
>
> for both 1.3 and 1.4, and let the method do the work as needed?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>

This message contains information that may be privileged or confidential and is the property
of the Capgemini Group. It is intended only for the person to whom it is addressed. If you
are not the intended recipient,  you are not authorized to read, print, retain, copy, disseminate,
 distribute, or use this message or any part thereof. If you receive this  message in error,
please notify the sender immediately and delete all  copies of this message.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message