返回信息流为什么这个remove(user)执行之后总是删除不掉呢,remove方法里面的参数是object,我传的参数是 自定义型的User对象,哪位大侠指点下,要怎么改这个问题?
public static void remove(String ip, User user) {
Pair<Pc, List<User>> item = find(ip);
if (item != null) {
item.getSecond().remove(user);
}
}
这是一条镜像帖。来源:北邮人论坛 / java / #18424同步于 2011/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
这个怎么改啊?
zhanglc
2011/5/19镜像同步20 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
item.getSecond()返回的是个啥
【 在 zhanglc (双面伊人) 的大作中提到: 】
: 为什么这个remove(user)执行之后总是删除不掉呢,remove方法里面的参数是object,我传的参数是 自定义型的User对象,哪位大侠指点下,要怎么改这个问题?
: public static void remove(String ip, User user) {
: Pair<Pc, List<User>> item = find(ip);
: ...................
【 在 buptlong 的大作中提到: 】
: item.getSecond()返回的是个啥
: 【 在 zhanglc (双面伊人) 的大作中提到: 】
: : 为什么这个remove(user)执行之后总是删除不掉呢,remove方法里面的参数是object,我传的参数是 自定义型的User对象,哪位大侠指点下,要怎么改这个问题?
: ...................
pair中的第二项:是一个user的列表
首先你可以运行这个试试
public static void remove(String ip, User user) {
Pair<Pc, List<User>> item = find(ip);
if (item != null) {
System.out.println(item.getSecond().size());
item.getSecond().remove(user);
System.out.println(item.getSecond().size());
}
}
然后,关键的问题,User是你自己实现的一个类么?
如果是的话,它的equals()方法,你有覆盖么?
【 在 zhanglc (双面伊人) 的大作中提到: 】
: 为什么这个remove(user)执行之后总是删除不掉呢,remove方法里面的参数是object,我传的参数是 自定义型的User对象,哪位大侠指点下,要怎么改这个问题?
: public static void remove(String ip, User user) {
: Pair<Pc, List<User>> item = find(ip);
: ...................
【 在 ox 的大作中提到: 】
: 首先你可以运行这个试试
: public static void remove(String ip, User user) {
: Pair<Pc, List<User>> item = find(ip);
: ...................
这个size我已经试过了,删前和删后是一样的。
那个equal我在user类中没有重写
问题就在于你没有覆盖equals()方法
【 在 zhanglc (双面伊人) 的大作中提到: 】
: 这个size我已经试过了,删前和删后是一样的。
: 那个equal我在user类中没有重写
【 在 ox 的大作中提到: 】
: 问题就在于你没有覆盖equals()方法
: 【 在 zhanglc (双面伊人) 的大作中提到: 】
: : 这个size我已经试过了,删前和删后是一样的。
: ...................
请问,这个怎么改啊,我是菜鸟 5555
public boolean equals(Object obj)
{
(相同返回true 不同返回false)
}
【 在 zhanglc (双面伊人) 的大作中提到: 】
: 请问,这个怎么改啊,我是菜鸟 5555
怎么改看你自己的需求,你认为什么样的条件两个User就是相等就可以了,默认从Object继承来的equals()方法是比较两个对象在内存中的地址。一般来说就比较对象的各个属性字段是否相等。
【 在 zhanglc (双面伊人) 的大作中提到: 】
: 请问,这个怎么改啊,我是菜鸟 5555
我在User类中重写了
public boolean equals(Object obj)
{
if(this==obj)
return true;
else
return false;
}
发现还是不对呢