2012-12-26 22 views
5

Załóżmy, że istnieje wymóg korzystania z określonego ogólnego interfejsu, ale sytuacja nie wymaga użycia jednego z ogólnych parametrów.Niepotrzebny parametr ogólny

Powiedzmy potrzebuję Callable<T> (który musi zwrócić T od sposobu jej call()), ale tym razem nie muszę wynik powrotną, po prostu chcę złożyć jakiś kod do ExecutorService „zrobić coś”

Jaka jest najlepsza opcja dla typu T?

+1

+1 Pada * pytania kapeluszy * na stackoverflow: P – Raffaele

+2

@Raffaele Czy to * to * oczywiste? lol – Bohemian

+0

Było to: P szczególnie od 0,05% najlepszych użytkowników eheh – Raffaele

Odpowiedz

7

Można użyć specjalnego Void typ:

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

Oświadczenie return jest wymagane, aby zakończyć tę metodę. Jedyną wartością akceptowaną przez kompilator jest null. Dość przydatny!

+0

+1 Jest to dokładny przypadek użycia dla klasy "Void". –

+0

To samo dotyczy "matematyki" – newacct

0

Użyj Void.

30char30char30char, przepraszam, nie wiele do dodania: P

0

W rzeczywistości można również przesłać Runnable do ExecutorService, który nie ma typu zwrotu.

Powiązane problemy