File tree Expand file tree Collapse file tree 1 file changed +13
-57
lines changed Expand file tree Collapse file tree 1 file changed +13
-57
lines changed Original file line number Diff line number Diff line change 1+ 《《《 [ 返回首页] ( ../README.md ) <br />
2+ 《《《 [ 上一节] ( 01_Constructors.md )
3+
14## 静态成员
25
3- 因为泛型是通过擦除编译的,所以在运行时类` List<Integer> ` ,` List<String> ` 和 ` List<List<String>> ` 全部由一个类实现,即 ` List ` 。你可以看到这个使用反射:
6+ 因为泛型是通过擦除编译的,所以在运行时类` List<Integer> ` ,` List<String> ` 和 ` List<List<String>> ` 全部由一个类实现,即 ` List ` 。你可以看到这个使用
7+ 反射:
48
59``` java
610 List<Integer > ints = Arrays . asList(1 ,2 ,3 );
1014
1115这里在运行时与整数列表关联的类与与字符串列表关联的类相同。
1216
13- 其中一个结果是泛型类的静态成员在该类的所有实例上共享,包括不同类型的实例。 类的静态成员不能引用泛型类的类型参数,并且在访问静态成员时,不应该对类名称进行参数化。
17+ 其中一个结果是泛型类的静态成员在该类的所有实例上共享,包括不同类型的实例。 类的静态成员不能引用泛型类的类型参数,并且在访问静态成员时,不应该对类名称
18+ 进行参数化。
1419
1520例如,下面是一个类 ` Cell<T> ` ,其中每个单元格都有一个整型标识符和一个类型为 ` T ` 的值:
1621
2732 }
2833```
2934
30- 静态字段 ` count ` 用于为每个单元分配不同的标识符。 静态 ` nextId ` 方法被同步,以确保即使在多个线程的情况下也能生成唯一的标识符。 静态 ` getCount ` 方法返回当前计数。
35+ 静态字段 ` count ` 用于为每个单元分配不同的标识符。 静态 ` nextId ` 方法被同步,以确保即使在多个线程的情况下也能生成唯一的标识符。 静态 ` getCount ` 方
36+ 法返回当前计数。
3137
3238这里是分配包含字符串的单元格和包含整数的单元格的代码,它们分别分配了标识符 ` 0 ` 和 ` 1 ` :
3339
6167 }
6268```
6369
64- 由于类可能在不同的地方使用不同的类型参数,因此在声明静态字段值或静态方法 ` getValues() ` 时引用 ` T ` 是没有意义的,并且这些行在编译时会报告为错误。如果我们想要一个单元格中保存的所有值的列表,那么我们需要使用一个对象列表,如下面的变体所示:
70+ 由于类可能在不同的地方使用不同的类型参数,因此在声明静态字段值或静态方法 ` getValues() ` 时引用 ` T ` 是没有意义的,并且这些行在编译时会报告为错误。如果
71+ 我们想要一个单元格中保存的所有值的列表,那么我们需要使用一个对象列表,如下面的变体所示:
6572
6673``` java
6774 class Cell2 <T> {
8188 assert Cell2 . getValues(). toString(). equals(" [one, 2]" );
8289```
8390
84-
85-
86-
87-
88-
89-
90-
91-
92-
93-
94-
95-
96-
97-
98-
99-
100-
101-
102-
103-
104-
105-
106-
107-
108-
109-
110-
111-
112-
113-
114-
115-
116-
117-
118-
119-
120-
121-
122-
123-
124-
125-
126-
127-
128-
129-
130-
131-
132-
133-
134-
135-
136-
91+ 《《《 [ 下一节] ( 03_Nested_Classes.md ) <br />
92+ 《《《 [ 返回首页] ( ../README.md )
You can’t perform that action at this time.
0 commit comments