2012-12-26 20 views
5

Angenommen, eine bestimmte generische Schnittstelle muss verwendet werden, die Situation erfordert jedoch nicht die Verwendung eines der generischen Parameter.Nicht benötigter generischer Parameter

Sagen wir, ich brauche eine Callable<T> (die eine T von seiner call() Methode zurückkehren müssen), aber bei dieser Gelegenheit Ich brauche nicht die Rückkehr Ergebnis, ich möchte nur einige Code einreichen zu einem ExecutorService „etwas zu tun“

Was ist die beste Option für den Typ T?

+1

+1 Es regnet * Hüte Fragen * auf Stackoverflow: P – Raffaele

+2

@Raffaele War es * das * offensichtlich? lol – Bohemian

+0

Es war: P speziell von 0,05% Top-Benutzer eheh – Raffaele

Antwort

7

Sie können die speziellen Void-Typ:

Callable<Void> callable = new Callable<Void>() { 
    @Override 
    public Void call() throws Exception { 
     // do stuff 
     return null; 
    } 
}; 

Die return Anweisung des Verfahrens beenden erforderlich ist. Der einzige Wert, den der Compiler akzeptiert, ist null. Ziemlich praktisch!

+0

+1 Dies ist der genaue Anwendungsfall für die 'Void' Klasse. –

+0

Das gleiche gilt für "Math" – newacct

0

Verwenden Sie Void.

30char30char30char, sorry, hinzufügen nicht viel: P

0

In der Tat können Sie auch eine Runnable an eine ExecutorService senden, die keinen Rückgabetyp hat.

Verwandte Themen