Skip to content

Commit 38fa2d8

Browse files
dellenovosjsdfg
authored andcommitted
Fix issue #365:改两个字 (#366)
* Fix issue #362:重新翻译What’s impressive is it is not intellectually prohibitive to assemble such a model Signed-off-by: lifei.zhang <lifei.zhang@oriente.com> * Fix issue #362:改两个字 Signed-off-by: lifei.zhang <lifei.zhang@oriente.com>
1 parent 2010769 commit 38fa2d8

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/book/20-Generics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,13 +1454,13 @@ public class ReturnGenericType<T extends HasF> {
14541454

14551455
例如,假设一个应用使用了两个类库 **X****Y****Y** 使用了类库 **Z**。随着 Java 5 的出现,这个应用和这些类库的创建者最终可能希望迁移到泛型上。但是当进行迁移时,它们有着不同的动机和限制。为了实现迁移兼容性,每个类库与应用必须与其他所有的部分是否使用泛型无关。因此,它们不能探测其他类库是否使用了泛型。因此,某个特定的类库使用了泛型这样的证据必须被”擦除“。
14561456

1457-
如果没有某种类型的迁移途径,所有已经构建了很长时间的类库就需要与希望迁移到 Java 泛型上的开发者们说再见了。类库毫无争议是编程语言的一部分,对生产效率有着极大的影响,所以这种代码无法接受。擦除是否是最佳的活唯一的迁移途径,还待时间来证明。
1457+
如果没有某种类型的迁移途径,所有已经构建了很长时间的类库就需要与希望迁移到 Java 泛型上的开发者们说再见了。类库毫无争议是编程语言的一部分,对生产效率有着极大的影响,所以这种代码无法接受。擦除是否是最佳的或唯一的迁移途径,还待时间来证明。
14581458

14591459
### 擦除的问题
14601460

14611461
因此,擦除主要的正当理由是从非泛化代码到泛化代码的转变过程,以及在不破坏现有类库的情况下将泛型融入到语言中。擦除允许你继续使用现有的非泛型客户端代码,直至客户端准备好用泛型重写这些代码。这是一个崇高的动机,因为它不会骤然破坏所有现有的代码。
14621462

1463-
擦除的代码是显著的。泛型不能用于显式地引用运行时类型的操作中,例如转型、**instanceof** 操作和 **new** 表达式。因为所有关于参数的类型信息都丢失了,当你在编写泛型代码时,必须时刻提醒自己,你只是看起来拥有有关参数的类型信息而已。
1463+
擦除的代价是显著的。泛型不能用于显式地引用运行时类型的操作中,例如转型、**instanceof** 操作和 **new** 表达式。因为所有关于参数的类型信息都丢失了,当你在编写泛型代码时,必须时刻提醒自己,你只是看起来拥有有关参数的类型信息而已。
14641464

14651465
考虑如下的代码段:
14661466

0 commit comments

Comments
 (0)