Mat*_* S. 3 java generics types wildcard type-parameter
在 Torgersen 等人 2005 年的Wild FJ论文中,第 2 节和第 3 节的第一段使用了术语“类型参数”。然后3.1节第一句介绍了术语“类型变量”。考虑到讨论的上下文以及谷歌上缺乏信息,我只能猜测“类型变量”是用来专门指代通配符的。我非常确定,这是一篇“开创性”的论文,它导致了 Java 中通配符的实现。
编辑:非常感谢 deduper 为编辑我的问题付出的辛勤工作!
在方法 中foo(int x),使用以下术语:
该方法有 1 个形式参数( int x),但通常会缩写为参数,从而导致潜在的混乱。int是参数类型,x是参数名称。
x是一个参数变量,尽管它经常被缩写为参数,导致潜在的混乱。
在调用中,foo(5)该值称为argument,尽管通常称为参数值,缩写为parameter,从而导致潜在的混淆。当需要澄清时,它被称为实际参数。
正如您所看到的,参数一词的简写用法可以表示int x、x或5,具体取决于上下文。
对于泛型类型,Foo<X extends Number>使用类似的命名:
该类型有 1 个类型参数,其中extends Number是类型绑定,X是类型标识符。
X是一个类型变量。
使用时,Foo<Integer>该Integer部分称为类型参数。类型参数可以是通配符。
不要将方法parameter type与泛型混淆type parameter。
正如您所看到的,您的结论“类型变量”用于专门指代通配符”是不正确的。类型变量指的是类型参数名称,无论类型参数是否绑定。
类型变量的“实际”类型(即类型参数)可以是也可以不是通配符,因为它是在泛型类型的使用中指定的,而不是在泛型类型的定义中指定的。
泛型类型变量仅在泛型类型的定义中引用,类似于方法参数变量仅在方法体中引用。
| 归档时间: |
|
| 查看次数: |
1248 次 |
| 最近记录: |