三个个小问题。
来源:4-2 【跟我一起编码】统一响应处理的开发

Echo鑫
2019-01-19
- 为什么CommonResponse要实现Serializable序列化接口?
- 在CommonResponseDataAdvice类中,MethodParameter这个类的作用什么?
- 泛型中T和?的区别。
写回答
1回答
-
实现 Serializable 是告诉 JVM 说这个对象是可以序列化的。需要序列化的情况可能是需要存储到文本文件中、通过 Socket 传递对象等等。CommonResponse 实现 Serializable,是考虑到将来可能的扩展存储。
MethodParameter 这个类用于保存方法的参数信息,包含类型、坐标(第几个参数)、注解发现、参数名等等(这实际设计到 Spring 的参数绑定的概念)。在代码中,我需要通过 MethodParameter 知道定义的类或方法是否加了 IgnoreResponseAdvice 注解(可以用在方法和类上)。而 supports 方法返回 true 代表需要统一的响应,返回 false 代表不需要统一的响应。
<T> 和 <?> 有着不同的使用场景:<T> 用来声明一个泛型类或泛型方法;而 <?> 则用来使用泛型类或泛型方法。更简单的讲,<T> 是定义类或方法时声明的,<?> 是调用时传入的,它们是不同的概念。
60
相似问题