MyException - 我的异常网
输入您需解决的 软件开发问题并开始搜索, 我的异常网可以方便地提供各类 程序错误解决方案。
当前位置: 我的异常网 » J2SE

看起来很简单的equals()有关问题,可就是不明白(2)


hashTest.test();

MyKeyTest   keyTest   =   new   MyKeyTest();
keyTest.test();
}
}

问题
1--编译通过后但是会有以下提示,为什么?
/****
Note:   C:\java\HashTable_Equals_Test.java   uses   unchecked   or   unsafe   operations.
Note:   Recompile   with   -Xlint:unchecked   for   details.
******/ 
2-- “//////88”那行的equals()覆盖时候,为什么传入的参数Object   obj必须转换成MyKey类型才行,否则会报错误---找不到name 和   age变量??
大家可以试试看,程序中注释掉的大家可以去掉注释运行(多种方法均可).
3-- equals()中if语句
if(name.equals(((MyKey)obj).name)   &&   age==((MyKey)obj).age)///99
的name的比较用equals()和==都可以,这是怎么回事?
用equals(((MyKey)obj).name),此时的equals()调用的是Object.equals()
还是MyKey.equals(),还是其他的?

4.     44444//   那行,问题已经写在上面了

------解决方案--------------------------------------------------------
1.JDK 5在使用集合时推荐使用范型,这个警告没什么太大关系,不用范型从集合中取回的东西是object,自己注意转型就是了
2.传经来的是一个Object,MyKey 不能指向Object,所以要向下转型
3.name是String类,String重写了equals()方法
------解决方案--------------------------------------------------------
好好读书。
------解决方案--------------------------------------------------------
天天向上
软件开发 程序错误 异常 Exception Copyright © 2009-2012 MyException 版权所有