2012-02-10 6 views
2

En lisant les spécifications du langage Java, j'ai trouvé quelques notations que je ne comprends pas. Par exemple celui-ciComment lire une notation particulière de la spécification du langage Java

Soit C une déclaration de type (§4.12.6, §8.1, §9.1) avec zéro ou plusieurs paramètres de type (§4.4) F1, ..., Fn qui ont des bornes correspondantes B1,. .., Bn. Cette déclaration de type définit un ensemble de types paramétrés (§4.5) C2, où chaque type d'argument Ti s'étend sur tous les types qui sont des sous-types de tous les types listés dans la borne correspondante. C'est-à-dire que pour chaque type lié Si dans Bi, Ti est un sous-type de Si [F1: = T1, ..., Fn: = Tn].

Qu'est-ce que Si [F1: = T1, ..., Fn: = Tn]? Comment le lire? Est-ce que quelqu'un sait? Merci ...

+2

Qu'est-ce que votre prof vous a dit lorsque vous lui avez posé cette question? –

+0

vous avez donné toutes les définitions dans ce paragraphe. regarder en arrière pour ce que T signifie, et F. – Randy

Répondre

1

La même spécification décrit la notation au chapitre 2.

+0

Je ne peux pas le trouver là – zim32

0

Voici la spécification Java actuelle:

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

Je ne pouvais pas trouver la référence que vous avez cité ci-dessus. Sans en savoir plus sur ce dont parle le paragraphe que vous avez cité, nous ne pouvons pas mieux expliquer la notation.

Ma meilleure estimation est la suivante:

  • Chaque "méthode" Java a une liste "signature" des arguments à cette fonction

  • Chaque argument a un "type" (par exemple "T1") qui est une "gamme délimitée" de valeurs juridiques (par exemple "B1..BN").

Je vous encourage à consulter le chapitre 4: «Types, valeurs et variables».

+0

Ici, il est http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.10.2 – zim32

+0

I ' m demandant à peu près Si [F1: = T1, ..., Fn: = Tn] ce texte. Je n'arrive pas à comprendre comment lire cette chaîne en langage humain – zim32

+0

Merci pour la référence - ça aide :) – paulsm4

1

Voir ce bug thread. En particulier cette phrase qui explique exactement ce que vous demandez:

Ainsi, étant donné une déclaration de type générique C un type C est bien formé si et seulement si T1 <: B1, T2 <: B2 ... Tn <: Bn.

Espérons que cela vous donnera une meilleure compréhension. Fondamentalement, la notation elle-même vous indique que chaque type de paramètre Fi est réellement affecté au sous-type Ti.

+0

Ma conjecture est que [x, x, x] est une certaine portée. Mais qu'est-ce que F1: = T1? Quel genre de relation? – zim32

+0

Il indique l'affectation. Un tel caractère spécial est utilisé pour différencier du contrôle d'égalité. Voir ici http://en.wikipedia.org/wiki/Assignment_(computer_science) –

+0

Je pense que j'ai trouvé. "Dans toute cette section, soit A1, ..., An les paramètres de type formel de C, et soit Bi la borne déclarée de Ai. La notation [Ai: = Ti] indique la substitution de la variable de type Ai par le type Ti, pour 1in, et est utilisé tout au long de cette spécification. " – zim32

Questions connexes