A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-20 13:52  /  1435 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public boolean equals(object obj)//这里能用泛型吗???
{


}

4 个回复

倒序浏览
如果是要重写Object类中的equals方法就不能用泛型 Object类中的equals方法就是用的Object作参数
回复 使用道具 举报
可以使用泛型,比如public <T>boolean equals(T t){},在代码上是可以编译通过的,
但是这样写出来的equals方法只是你自己可以调用,和覆盖Object的equals方法在意义上是不同的,
这种写法的equals,在hashSet等类的默认情况下会被忽略掉,它们只会调用使用object作为参数的equals。
回复 使用道具 举报
使用泛型的话就是自己定义的方法了 就不是@Override了
建议重写父类的方法时在方法上加上注释
@Override
public boolean equals(Object obj){}
回复 使用道具 举报
哥们,泛型可以定义在类上,也可以定义在方法上,主要看需求:
1,对于equals方法的复写,通常出现在具体的自定义类(如Student类的子类JavaStudent)中,此时泛型为 equals(Studetn<JavaStudent> jst);
2,泛型的由来:当对象类型有多种,需要为某一种或某几种类型特制的集合或类时,如果对泛型进行了指定,那么在把对象加人集合或者传入方法时,编译器会进行验证,类型不符合条件时,编译器提前警告,把问题解决在运行之前,提高工作的效率;泛型的指定,也免去了类型的强转动作,减小了工作量;
3,泛型是JDK1.5的新特性,该新特性的价值在于,使代码简单化,提高工作的效率;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马