hi,
ich hab mir aus dem Bereich Multithreading ein kleine Blockingqueue geschrieben wo ich jetzt aus Übungsgründen versucht hab generics reinzubringen.
Ich wollte aussagen, das der Parameter bei der Methode add() entweder der über <T> spezifierte Wert sein muss oder ein Wert, der von Number erbt. Ich krieg das syntaktisch aber nicht richtig auf die Reihe. Es gibt andauernd Fehlermeldungen er können den Typ nicht auswerten. Was mach ich da falsch ?
ich hab mir aus dem Bereich Multithreading ein kleine Blockingqueue geschrieben wo ich jetzt aus Übungsgründen versucht hab generics reinzubringen.
Ich wollte aussagen, das der Parameter bei der Methode add() entweder der über <T> spezifierte Wert sein muss oder ein Wert, der von Number erbt. Ich krieg das syntaktisch aber nicht richtig auf die Reihe. Es gibt andauernd Fehlermeldungen er können den Typ nicht auswerten. Was mach ich da falsch ?
Code:
public class BQ<T>
{
private ArrayList<T> al;
public BQ ()
{
al = new ArrayList<T>();
}
public synchronized void add(<? extends Number> m)
{
if (m == null)
throw new NullPointerException();
al.add((T) m);
this.notifyAll();
}
public synchronized T get() throws InterruptedException
{
while(al.isEmpty())
wait();
T m = al.get(0);
al.remove(0);
return m;
}
}