Skip to content

Commit 7d84dd4

Browse files
authored
Update 02_Static_Members.md
1 parent 03d1f8b commit 7d84dd4

File tree

1 file changed

+13
-57
lines changed

1 file changed

+13
-57
lines changed

ch04/02_Static_Members.md

+13-57
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
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);
@@ -10,7 +14,8 @@
1014

1115
这里在运行时与整数列表关联的类与与字符串列表关联的类相同。
1216

13-
其中一个结果是泛型类的静态成员在该类的所有实例上共享,包括不同类型的实例。 类的静态成员不能引用泛型类的类型参数,并且在访问静态成员时,不应该对类名称进行参数化。
17+
其中一个结果是泛型类的静态成员在该类的所有实例上共享,包括不同类型的实例。 类的静态成员不能引用泛型类的类型参数,并且在访问静态成员时,不应该对类名称
18+
进行参数化。
1419

1520
例如,下面是一个类 `Cell<T>`,其中每个单元格都有一个整型标识符和一个类型为 `T` 的值:
1621

@@ -27,7 +32,8 @@
2732
}
2833
```
2934

30-
静态字段 `count` 用于为每个单元分配不同的标识符。 静态 `nextId` 方法被同步,以确保即使在多个线程的情况下也能生成唯一的标识符。 静态 `getCount` 方法返回当前计数。
35+
静态字段 `count` 用于为每个单元分配不同的标识符。 静态 `nextId` 方法被同步,以确保即使在多个线程的情况下也能生成唯一的标识符。 静态 `getCount`
36+
法返回当前计数。
3137

3238
这里是分配包含字符串的单元格和包含整数的单元格的代码,它们分别分配了标识符 `0``1`
3339

@@ -61,7 +67,8 @@
6167
}
6268
```
6369

64-
由于类可能在不同的地方使用不同的类型参数,因此在声明静态字段值或静态方法 `getValues()` 时引用 `T` 是没有意义的,并且这些行在编译时会报告为错误。如果我们想要一个单元格中保存的所有值的列表,那么我们需要使用一个对象列表,如下面的变体所示:
70+
由于类可能在不同的地方使用不同的类型参数,因此在声明静态字段值或静态方法 `getValues()` 时引用 `T` 是没有意义的,并且这些行在编译时会报告为错误。如果
71+
我们想要一个单元格中保存的所有值的列表,那么我们需要使用一个对象列表,如下面的变体所示:
6572

6673
```java
6774
class Cell2<T> {
@@ -81,56 +88,5 @@
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)

0 commit comments

Comments
 (0)