2015-05-31 19 views
5

Czy jest jeszcze (obejście), aby zdefiniować synonimy nazw w Javie, podobne do poniższej definicji w Scali?Typ synonimy w java

type Row = List[Int]; 

Choć może nie być dokładnie takie same, myślałem o następującym kodzie (I otrzymuje listy z ArrayList, ponieważ lista jest interfejs w języku Java):

public class Row extends ArrayList<Integer>{} 

Czy czy istnieje inny sposób na uzyskanie mechanizmu synonimów typów w języku Java?

+2

Nie sądzę. "Rozszerzenia" to najlepsze, co możesz zrobić. Ponieważ 'List ' (nie 'List ') jest interfejsem, myślę, że to co napisałeś może być wystarczająco dobre, ale nie jestem pewien. Jeśli zrobisz to za pomocą _concrete_ type, wtedy, aby uzyskać typ, który jest jak najbardziej zbliżony do bycia równoważnym, musisz również redeclare wszystkich konstruktorów i uczynić je po prostu 'super (argumenty);'. – ajb

+0

Nie, nie ma mowy. Twoja metoda jest uważana w niektórych kręgach za anty-wzór. –

+0

@ajb Zmieniłem listę na ArrayList. Masz rację, List jest interfejsem w java. – qartal

Odpowiedz