File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Brick House Java Bean Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Brick House Java Bean Question" Watch "Brick House Java Bean Question" New topic

Brick House Java Bean Question

Dale Seng
Ranch Hand

Joined: Mar 22, 2004
Posts: 275
The (unexpected) output is:

Here's the code, which can speak for itself, I think.

I think I see that because "this.chest = chest;" is really "this.chest = new String(chest);", it means that my reference that's in the array is pointing to an old copy. Fine. Weird, but fine. Now, how does one deal with it? I thought of:

But that's not very nice now, is it?

This is one of those "there must be a better way" things (without removing the key concept here: the array of attributes). They all might not be String objects, by the way.

Ernest Friedman-Hill
author and iconoclast

Joined: Jul 08, 2003
Posts: 24199

Originally posted by Dale Seng:

But that's not very nice now, is it?

I'm not sure why you think this is "not nice"; there are two ways to fix your code, and this is one of the two. It's actually the less preferable one, but I could live with it if you had special requirements.

The other one is to get rid of the arrays and loops and lists of names and such drek, and just have

The version with the arrays and loops is just plain nasty: hard to understand and hard to change. An awful lot of mess and overhead to introduce just to (presumably) avoid a bit of work in updating the "toString()" method if attributes are added.

[Jess in Action][AskingGoodQuestions]
Joel McNary

Joined: Aug 20, 2001
Posts: 1824

Actaully, that way is just fine. That's the point of encapsulation -- it deosn't matter *how* it is implemented, the exposed methods (the getters and setters) will work. The inner workings is just a black box.

Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.
Dale Seng
Ranch Hand

Joined: Mar 22, 2004
Posts: 275
Gentlemen: Thank you.

The reason I said it was "not nice" was because Eclipse wouldn't write it for me ;-)

Getting rid of the attributes array isn't really an option because I've got bunches and bunches of attributes that I need to get via EL, so they need a "named getter".

But I wanted to slam data into this, and other beans that extend the same abstract class, by using something along the lines of "attributes[i] = resultSetItem.getObject(i)".

It works the way I have it; I guess it's nice enough.

Thanks again.

I agree. Here's the link:
subject: Brick House Java Bean Question
It's not a secret anymore!