Habe mal ein KSKB gekünstelt, damit ihr besser versteht, was ich machen möchte:
Das ist auch soweit ganz okay und erfüllt genau den Zweck, den ich möchte.
Nun habe ich dazu 2 Fragen:
1)
return (E) model;
gibt eine Unchecked-Cast-Warning, ich bin mir aber nicht sicher wie (und ob überhaupt) man sie wegbekommt
(steh ich aufm Schlauch?)
2)
new GenericClass<Model1>(new Model1());
Da steckt 2mal Model1 drin, lässt sich das nicht irgendwie umgehen/verbessern?
Das gefällt mir irgendwie nicht, aber ich denke, es geht nicht anders.
mfg Verjigorm
Java:
public class GenericClass<E extends GenericClass.AbstractModel>
{
private final AbstractModel model;
public GenericClass(AbstractModel model)
{
this.model = model;
}
private E getModel()
{
return (E) model;
}
/**
* @param args
*/
public static void main(String[] args)
{
GenericClass<Model1> class1 = new GenericClass<Model1>(new Model1());
GenericClass<Model2> class2 = new GenericClass<Model2>(new Model2());
class1.getModel();
class2.getModel();
//...
}
static abstract class AbstractModel
{
//...
}
static class Model1 extends AbstractModel
{
//...
}
static class Model2 extends AbstractModel
{
//...
}
}
Das ist auch soweit ganz okay und erfüllt genau den Zweck, den ich möchte.
Nun habe ich dazu 2 Fragen:
1)
return (E) model;
gibt eine Unchecked-Cast-Warning, ich bin mir aber nicht sicher wie (und ob überhaupt) man sie wegbekommt
(steh ich aufm Schlauch?)
2)
new GenericClass<Model1>(new Model1());
Da steckt 2mal Model1 drin, lässt sich das nicht irgendwie umgehen/verbessern?
Das gefällt mir irgendwie nicht, aber ich denke, es geht nicht anders.
mfg Verjigorm