code=Java]class Person
{
private String name;
public Person(String name)
{
this.name = name;
}
public boolean equals(Object obj)
{
if(this==obj) return true;
if(!obj instanceof Person) return false;//这句话提示错误
final Person other = (Person)obj;
if(this.name.equals(other.name))
return true;
else 
return false;
}
}
public class TestPerson
{
public static void main(String args[])
{
Person p1 = new Person("kk");
Person p2 = new Person("kk");
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
}
}[[/code]
提示说运算符!不能应用在java。lang。object类中

解决方案 »

  1.   

    if(!obj instanceof Person) return false;//这句话提示错误 加个括号if ( !(obj instanceof Person) ) return false;
      

  2.   

    2#说的没错  就是因为!的优先级比instanceOf高  所以会出错的  加个括号就没问题了  去接贴吧  哈哈哈
      

  3.   

    在Java中的代码中“!”是不能独立的!它在代码中是“非”的意思。在if语句中的条件语句是个Boolean类型,所以不是不能使用,而是你运用错了。
    同意1楼的