import java.lang.reflect.Field; public class Outer {//this$0 public class FirstInner {//this$1 public class SecondInner {//this$2 public class ThirdInner { } } } public static void main(String[] args) throws Exception { //初始化各内外实例 Outer test = new Ou
简单的说,比较两个int型或long型的数据没有什么问题,可以用==来判断,但对浮点数(float与double)来说,需要对Float.NaN和0.0这个两个特殊数字作额外的处理.Float.NaN严格说来不是一个数字(它的字面意思也就是Not a Number),但是因为这个值可以被保存在一个float型的变量中(因为它常常是除0的结果),所以暂且当它是个数字吧.但它与一般的浮点数有些许不同,就是两个NaN用==比较的结果会得到false.可以用下面的代码验证: Code highlight