2012-12-06 22 views

Odpowiedz

14
A<T extends I1, I2> 

jest rodzajem A z dwoma parametrami

  1. T który musi być podtypem I1
  2. I2

Można odczytać to jako „<przyimek> typ T który rozszerza I1 <przyimek> t yp I2" , tak SortedMap<Key extends comparable, Value> jest «map z analogicznym kluczem typu wpisać wartość»


A<T extends I1 & I2> 

jest rodzajem A z pojedynczym parametrem

  1. T który musi być podtypem I1 i podtypem I2

Można to odczytać jako "A <przyimek> typ T, która rozciąga I1 i I2" tak SortedSerializableSet<T extends Serializable & Comparable> można odczytać «a sortowane zestaw elementów typu T, który jest zarówno do serializacji i porównywalne»

+0

masz rację! Zakłóciło mnie "rozszerzenie", które sprawiło, że pomyślałem, że I1 i I2 są powiązane z T ... Wstyd mi ... – ncenerar

+0

Należy również zauważyć, że śpiączka (',') jest używana, gdy klasa implementuje wiele interfejsów, ale '&' nie jest tam dozwolone ... To jest mylące ... – ncenerar

+0

@NicolasCenerario, Zgadzam się, że ',' jest mylące. Idealnie w sygnaturach typu użyliby 'narzędzi' lub wykorzystali interpunkcję jak ('|'), która przekazuje ideę, że rozszerzasz zestaw lewych stron, które mogą akceptować wartości zadeklarowanego typu. –