Re: correct usage for @SuppressWarnings("unchecked")
Thufir wrote:
I'm just going through and ensuring compilation with -Xlint and find
myself assuming that the cast will work -- which it currently does.
Should it be wrapped in a try/get? A more sophisticated use of
generics?
Stop using raw types, and use interfaces in preference to concrete
types.
package view;
import database.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class BeatlesLoader {
private Logger logger =
Make 'logger' a 'final' variable.
Logger.getLogger(view.BeatlesLoader.class.getName());
private ParametersBean mp = new ParametersBean();
'mp' should probably be 'final', too.
public BeatlesLoader() {
logger.log(Level.INFO, "BeatlesLoader...");
}
There are subtleties to proper formats for log messages.
@SuppressWarnings("unchecked")
As pointed out upthread, move the suppression to the declaration where
it matters, which in your case is nowhere once you fix your use of raw
types.
private List<Beatle> populateBeatles() {
logger.log(Level.INFO, "populateBeatles...");
database.DatabaseBean database = new database.DatabaseB=
ean();
You have an 'import' for th 'database' package, so you could use just
simple class names.
ArrayList<ArrayList<String>> table = database.getTable(=
);
This should be 'List <List <String>> table ...'
List<Beatle> beatles = new ArrayList<Beatle>();
for (ArrayList record : table) {
for ( List <String> record : table )
Don't use raw types.
Beatle beatle = new Beatle(record);
beatles.add(beatle);
}
logger.log(Level.INFO, "...populateBeatles" +
beatles.toString());
return beatles;
}
public List<Beatle> getBeatles() {
logger.log(Level.INFO, "getBeatles...");
List<Beatle> beatles = populateBeatles();
logger.log(Level.INFO, "...getBeatles" + beatles.toString=
());
return beatles;
}
}
Don't use raw types, then you won't need
'@SuppressWarnings("unchecked")'.
--
Lew