fix Class.getInterface() -> Class.getInterfaces() (#392)

* 忽路->忽略

* 修复跳转链接错误

* fix Class.getInterface() -> Class.getInterfaces()

* 否者 -> 否则

* 编译期 -> 编译器 ,原文"the compiler will only allow you to say that the superclass reference is “some class that is a superclass of FancyToy” a"
This commit is contained in:
XuYanxin
2020-03-04 10:01:48 +08:00
committed by GitHub
parent 08235e78da
commit 849890da3b

View File

@@ -252,7 +252,7 @@ Canonical name : typeinfo.toys.Toy
`printInfo()` 函数使用 `getName()` 来产生完整类名,使用 `getSimpleName()` 产生不带包名的类名,`getCanonicalName()` 也是产生完整类名(除内部类和数组外,对大部分类产生的结果与 `getName()` 相同)。`isInterface()` 用于判断某个 `Class` 对象代表的是否为一个接口。因此,通过 `Class` 对象,你可以得到关于该类型的所有信息。
在主方法中调用的 `Class.getInterface()` 方法返回的是存放 `Class` 对象的数组,里面的 `Class` 对象表示的是那个类实现的接口。
在主方法中调用的 `Class.getInterfaces()` 方法返回的是存放 `Class` 对象的数组,里面的 `Class` 对象表示的是那个类实现的接口。
另外,你还可以调用 `getSuperclass()` 方法来得到父类的 `Class` 对象,再用父类的 `Class` 对象调用该方法,重复多次,你就可以得到一个对象完整的类继承结构。
@@ -501,7 +501,7 @@ public class DynamicSupplier<T> implements Supplier<T> {
14
```
注意,这个类必须假设与它一起工作的任何类型都有一个无参构造器,否运行时会抛出异常。编译期对该程序不会产生任何警告信息。
注意,这个类必须假设与它一起工作的任何类型都有一个无参构造器,否运行时会抛出异常。编译期对该程序不会产生任何警告信息。
当你将泛型语法用于 `Class` 对象时,`newInstance()` 将返回该对象的确切类型,而不仅仅只是在 `ToyTest.java` 中看到的基类 `Object`。然而,这在某种程度上有些受限:
@@ -527,7 +527,7 @@ public class GenericToyTest {
}
```
如果你手头的是超类,那编译将只允许你声明超类引用为“某个类,它是 `FancyToy` 的超类”,就像在表达式 `Class<? super FancyToy>` 中所看到的那样。而不会接收 `Class<Toy>` 这样的声明。这看上去显得有些怪,因为 `getSuperClass()` 方法返回的是基类(不是接口),并且编译器在编译期就知道它是什么类型了(在本例中就是 `Toy.class`),而不仅仅只是"某个类"。不管怎样,正是由于这种含糊性,`up.newInstance` 的返回值不是精确类型,而只是 `Object`
如果你手头的是超类,那编译将只允许你声明超类引用为“某个类,它是 `FancyToy` 的超类”,就像在表达式 `Class<? super FancyToy>` 中所看到的那样。而不会接收 `Class<Toy>` 这样的声明。这看上去显得有些怪,因为 `getSuperClass()` 方法返回的是基类(不是接口),并且编译器在编译期就知道它是什么类型了(在本例中就是 `Toy.class`),而不仅仅只是"某个类"。不管怎样,正是由于这种含糊性,`up.newInstance` 的返回值不是精确类型,而只是 `Object`
### `cast()` 方法