接上篇:https://developer.aliyun.com/article/1227533?spm=a2c6h.13148508.setting.32.148c4f0eQyO5tl
6. 利用Whitebox.invokeMethod方法代替Method.invoke方法
JDK提供的Method.invoke方法返回的是Object类型,转化为具体类型时需要强制转换,会产生类型转换警告。而PowerMock提供的Whitebox.invokeMethod方法返回类型可以自动转化,不会产生类型转换警告
问题代码:
建议代码:
7. 利用instanceof关键字
在具体类型强制转换时,建议利用instanceof关键字先判断类型,否则会产生类型转换警告。
问题代码:
建议代码:
8. 利用Class.cast方法
在泛型类型强制转换时,会产生类型转换警告。可以采用泛型类的cast方法转换,从而避免产生类型转换警告。
问题代码:
建议代码:
4. 避免不必要的类型转换
有时候,没有必要进行类型转换,就尽量避免类型转换。比如:把Object类型转换为具体类型,但又把具体类型当Object类型使用,就没有必要进行类型转换。像这种情况,可以合并表达式或定义基类变量,从而避免不必要的类型转化。
问题代码:
建议代码:
后记
《满江红·卓越工程》
夜色朦胧,高楼里、灯如白昼。
揉困眼,仰天长吼,又熬一宿。
美好生活仍未见,称心工作何时有?
累成狗、秃了少年头,人消瘦。
编单测,纠错谬。
核代码,查疏漏。
讲方法,打破加班魔咒。
规范流程提效率,工程实践争优秀。
从此后、阔步向前行,精神抖。
——谨以此词献给集团的《卓越工程》项目。