Re: Generics question
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Larry Coon schreef:
My HistoryTableModel starts off like this:
public abstract class HistoryTableModel
extends AbstractTableModel {
// I've tried various things here, this is just
// the latest.
protected ContinuousHistory<? extends History> history;
public abstract Object getValueAt(int row, int col);
// This is just an example method.
public final int getRowCount() {
return history.getHistoryData().size();
}
. . .
}
Now here's one of the concrete subclasses:
public class TitleTableModel extends HistoryTableModel {
public TitleTableModel(
ContinuousHistory<? extends History> history)
{
this.history = (ContinuousHistory<TermTypeHistory>)
history;
}
public Object getValueAt(int row, int col) {
TitleHistory th = history.get(row); // COMPILE ERROR
// etc.
}
. . .
}
This implementation won't compile, saying:
Type mismatch: cannot convert from capture-of ? extends
History to TitleHistory
at the spot I indicated above.
What's the right way to declare "history" in class
HistoryTableModel so that it will be a
ContinuousHistory<some class which extends History>,
and the right way to declare the subclass to use it as
a ContinuousHistory<TermTypeHistory> (or whatever other
concrete class)? I've tried a dozen or so different ways,
and I can't find one that works.
How about you pass the information on what type of history you want on
the class level?
public abstract class HistoryTableModel<H extends History>
extends AbstractTableModel {
protected ContinuousHistory<H> history;
// This is just an example method.
public final int getRowCount() {
return history.getHistoryData().size();
}
. . .
}
public class TitleTableModel extends HistoryTableModel<TitleHistory> {
public TitleTableModel(
ContinuousHistory<TitleHistory> history)
{
this.history = history;
}
public Object getValueAt(int row, int col) {
TitleHistory th = history.get(row);
// etc.
}
. . .
}
HTH, H.
- --
Hendrik Maryns
http://tcl.sfs.uni-tuebingen.de/~hendrik/
==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFFM072e+7xMGD3itQRAmx4AJ9qbK9nypWqM336k1vuJlVzS5N77wCeIJa3
NDsgba0IQ8mPVVpjX/H34jM=
=ytMY
-----END PGP SIGNATURE-----