当我要比较两个变量(一个Object类型,一种类型的龙),我发现不能转换对象长,例如:比较对象和长及整数
Object obj = 100;
Long l_num = 100L;
System.out.println(obj.equals((Object)l_num)); // print false
System.out.println(((Long)obj) == l_num); // throw java.lang.ClassCastException Exception
那我只能比较两个与(obj.toString()).equals(l_num.toString())
,它返回true。
但是,结果是不同的,当我比较整数与对象:
Object obj = 100;
Integer i_num = 100;
System.out.println(((Integer)obj) == i_num); // return true System.out.println(obj.equals(i_num)); // return true System.out.println((obj.toString()).equals(i_num.toString())); // return true
有没有人请你告诉我,为什么两个结果是不同的,有没有更好的方法与龙比较对象?
如果您认为这是一个有意义的问题,让我们来谈谈它。谢谢。
考虑一下你是比较,并试图转换为'100' VS'100L'。 –
你认为这个'(obj.toString())。equals(l_num.toString())'是做什么的? –
我没有看到任何奇怪的事情发生在这里-_- – Baby