Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16206
| From | Lew <noone@lewscanon.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: How to not use casting to invoke the methods of a List of objects |
| Date | 2012-07-21 23:34 -0700 |
| Organization | albasani.net |
| Message-ID | <jug6sq$mmi$1@news.albasani.net> (permalink) |
| References | <61dca380-4364-4713-aa27-e885f96632ea@googlegroups.com> |
On 07/20/2012 06:58 AM, clusardi2k@aol.com wrote:
> Below uses a List of objects of class Route. Class Route has public member
Public variables are frowned upon in Java. That doesn't mean never use them,
but it does make me wonder why you also defined an accessor method.
> variables (such as locationid) and public methods (such as get_locationid()).
You should follow the Java naming conventions: locationId and getLocationId().
Camel case. No underscores.
Don't describe your code. That's all but useless. Show your code.
http://sscce.org/
> The below code is a first attempt at a way to obtain the value of locationid
> using casting. Question: What is the code to do it a better way.
In addition to what everyone else has said
> ((Route)objList.get(0)).locationid;
'objList' is a bad name. You have a collection of 'Route's, right? So your
variable should be 'routes'.
> ((Route)objList.get(1)).locationid;
>
Why are you casting at all?
Route route = routes.get(0);
You did declare your list as a 'List<Route>', of course, right?
> The below start of replacement code fails because it skips through the list. There wasn't a good reason for me to finish the code! The loop can't even iterate the required number of loops.
>
> Iterator <Route> it = objList.iterator();
Indent enough?
> int size = objList.size();
>
> for (int i = 0;i < size; i++)
> {
> it.next();
> }
You shouldn't use both indexes and iterators in the same loop. Stick with one
or another for any given loop.
You should never use an iterator 'next()' without checking 'hasNext()' first.
You often can, and therefore in those cases should, use the for-each loop, as
others have already said:
for (Route route : routes)
{
doSomethingWith(route);
}
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
How to not use casting to invoke the methods of a List of objects clusardi2k@aol.com - 2012-07-20 06:58 -0700
Re: How to not use casting to invoke the methods of a List of objects markspace <-@.> - 2012-07-20 07:21 -0700
Re: How to not use casting to invoke the methods of a List of objects clusardi2k@aol.com - 2012-07-20 08:09 -0700
Re: How to not use casting to invoke the methods of a List of objects Joerg Meier <joergmmeier@arcor.de> - 2012-07-20 17:45 +0200
Re: How to not use casting to invoke the methods of a List of objects Robert Klemme <shortcutter@googlemail.com> - 2012-07-20 18:03 +0200
Re: How to not use casting to invoke the methods of a List of objects Joerg Meier <joergmmeier@arcor.de> - 2012-07-20 18:59 +0200
Re: How to not use casting to invoke the methods of a List of objects Roedy Green <see_website@mindprod.com.invalid> - 2012-07-20 21:22 -0700
Re: How to not use casting to invoke the methods of a List of objects Lew <noone@lewscanon.com> - 2012-07-21 23:34 -0700
csiph-web