Re: Pixelgrabber and Vectors, changes not happening.
bH wrote:
On Jul 27, 8:06 pm, Joshua Cranmer <Pidgeo...@verizon.net> wrote:
On Fri, 27 Jul 2007 16:00:42 -0700, bH wrote:
if (mSt == "000000"){
String == comparison only works under certain conditions that are not
true for about 95% of the cases.
The short answer:
Use "000000".equals(mSt) instead of mSt == "000000"
The long answer:
There is a long thread explaining this topic in full detail in the
comp.lang.java.programmer group, entitled "String.equals()" by Chameleon,
started on July 22, 2007.
Hi Joshua,
Thanks for your help.
First I discarded entirely:
private String RestateClrLine (String mSt) {
String res ="";
System.out.println(mSt );
if (mSt == "000000"){
res = "ff0000";
System.out.println("Y");
}
else {
res = mSt;
System.out.println("N");
}
return res;
}
Revision as you have suggested:
mSet = mSet + si;
if ("000000".equals( mSet)) {
mSet = "ff0000";
}
vectorColorData.addElement(mSet);
or this will also work
mSet = mSet + si;
if( mSet.equals("000000")) {
mSet = "ff0000";
}
vectorColorData.addElement(mSet);
Thanks again,
The second form may in some applications require a separate check for
non-null-ness, actually an advantage in my book, and also recommended by the
knowledgeable Patricia Shanahan.
if ( mSet != null && mSet.equals("000000")) {
While some think this is too hard (whiners), Patricia has made the excellent
point that when null is a "Bad Thing", an explicit check for it emphasizes
that in a "literate code" way. The shortcutters argue that the first form
will yield "not equal" if mSet is null, so the job is done. I argue that null
is a special value, and should be treated as an out-of-band value nearly always.
--
Lew