В разделе 4.5 JLS (Parameterized Types) упоминается следующее обозначение: S[F1:=T1,...,Fn:=Tn]
.Обозначение S [F1: = T1, ..., Fn: = Tn] в JSL
Я точно не понимаю смысл этой нотации.
Он упоминается в следующем пункте:
Базовый тип имеет тип параметров F1, ..., Fn с соответствующими границами B1, ..., Bn. Каждый аргумент типа Ti параметризованного типа охватывает более всех типов, которые являются подтипами всех типов, перечисленных в соответствующей строке . То есть для каждого связанного типа S в Bi Ti является подтипом S [F1: = T1, ..., Fn: = Tn] (§ 4.10).
Смысл приведенного выше высказывания ясен.
Но это не для меня ясно, почему мы имеем [F1:=T1,...,Fn:=Tn]
после S
Также здесь индексируется 'Si' (в JLS8 мы имеем' S'). Похоже, что Si [F1: = T1, ..., Fn: = Tn] является просто Bi (т. Е. Другая форма обозначения Bi) – Vitaly
Не совсем. Каждый параметр типа (Fi) имеет единственную границу (Bi), но каждая граница может сама перечислить несколько типов (S). Из этих типов только один может быть классом, но граница может включать несколько типов интерфейсов. – ILMTitan
Теперь это выглядит ясно. Если, например, 'Bi = MyClass & MyInterface', то' S [F1: = T1, ..., Fn: = Tn] 'shoud будет либо' MyClass', либо 'MyInterface' – Vitaly