2012-02-10 5 views
2

При чтении спецификации языка Java я нашел несколько обозначений, которые я не могу понять. Например, этотКак читать определенную нотацию из спецификации языка Java

Пусть C - объявление типа (§4.12.6, §8.1, §9.1) с нулевыми или более параметрами типа (§4.4) F1, ..., Fn, которые имеют соответствующие границы B1,. .., Bn. Объявление этого типа определяет набор параметризованных типов (§4.5) C2, где каждый тип аргумента Ti охватывает все типы, которые являются подтипами всех типов, перечисленных в соответствующей оценке. То есть для каждого связанного типа Si в Bi Ti является подтипом Si [F1: = T1, ..., Fn: = Tn].

Что такое Si [F1: = T1, ..., Fn: = Tn]? Как это прочитать? Кто-нибудь знает? Спасибо ...

+2

Что сказал ваш профессор, когда вы задали ему этот вопрос? –

+0

вы указали все определения в этом пункте. оглянитесь назад на то, что означает T, и F. – Randy

ответ

1

То же спецификация описывает обозначения в главе 2.

+0

Я не могу найти его там – zim32

0

Вот текущая спецификация Java:

http://download.oracle.com/otn-pub/jcp/jls-7-mr3-fullv-oth-JSpec/JLS-JavaSE7-Full.pdf

Я не смог найти ссылку, которую цитировал выше.

Не зная больше о том, о чем говорится в параграфе, мы с трудом можем объяснить обозначение лучше.

Мое предположение заключается в следующем:

  • Каждый «метод» Java имеет «подпись» с перечислением аргументов этой функции

  • Каждый аргумент имеет «тип» (например, «T1») который является «ограниченным диапазоном» правовых значений (например, «B1..BN»).

Я бы посоветовал вам взглянуть на главу 4: «Типы, значения и переменные».

+0

Здесь http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.10.2 – zim32

+0

I ' m спрашивает точно о Si [F1: = T1, ..., Fn: = Tn] этот текст. Я не могу понять, как читать эту строку на человеческом языке – zim32

+0

Thanx для справки - это помогает :) – paulsm4

1

Посмотрите эту ошибку thread. Особенно это предложение, которое объясняет, что именно вы просите:

Итак, учитывая общий тип декларации C тип C хорошо сформированным, если и только если T1 <: B1, T2 <: B2 ... Tn <: Bn.

Надеюсь, это даст вам лучшее понимание.

В основном само обозначение говорит вам, что каждый тип параметра Fi фактически назначен подтипу Ti.

+0

Я предполагаю, что [x, x, x] - это некоторый диапазон. Но что такое F1: = T1? Сотни отношения? – zim32

+0

Он обозначает назначение. Такой особый характер используется для отличия от проверки равенства. См. Здесь http://en.wikipedia.org/wiki/Assignment_(computer_science) –

+0

Я думаю, что нашел. «Всюду в этом разделе пусть A1, ..., An - формальные параметры типа C и пусть Bi - объявленная граница Ai. Обозначение [Ai: = Ti] означает замену переменной типа Ai типом Ti, для 1in и используется в этой спецификации ». – zim32