相关疑难解决方法(0)

覆盖hashCode() - 这还不错吗?

对于其字段仅为原始的类,例如:

class Foo
{
    int a;
    String b;
    boolean c;
    long d;

    boolean equals(Object o)
    {
        if (this == o) return true;
        if (!(o instanceof Foo)) return false;
        Foo other = (Foo) o;
        return a == other.a && b.equals(other.b) && c == other.c && d = other.d;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个合理的"足够好"的写作方式hashCode()吗?

boolean hashCode()
{
    return (b + a + c + d).hashCode();
}
Run Code Online (Sandbox Code Playgroud)

也就是说,我构建了一个使用String相同的字段,equals()然后使用String#hashCode().

编辑: 我已更新我的问题以包括一个long字段.应如何long处理hashCode()?只是让它溢出int …

java equals hashcode

7
推荐指数
1
解决办法
503
查看次数

检查请求参数是否等于Java中的字符串

我想在java中这样做

if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
Run Code Online (Sandbox Code Playgroud)

对于刚接触java的人,为什么上面的代码不起作用,以及在上面做我想做的最好的方法是什么?

java request query-string

2
推荐指数
1
解决办法
1万
查看次数

Java:等于和==

让我们看看我们有2个用户定义类的实例的引用,Java中的a和b.是否会出现a == b但a.equals(b)返回false的情况?

java reference equals

2
推荐指数
2
解决办法
437
查看次数

比较Java中的两个对象

我有两个不同的同一实体"社区"对象

两个对象(社区和com)具有相同的值

Communty.java有以下变量:

   private Integer communityId;
   private String communityName;
   private String description;

   // many to many relationship
   private Set<Faculty> faculties = new HashSet<Faculty>();
   private Set<User> users = new HashSet<User>();
Run Code Online (Sandbox Code Playgroud)

我用同样的方法:

@Override
   public boolean equals(Object obj) {
          // TODO Auto-generated method stub
          if(obj==null)
                 return false;
          if(obj==this)
                 return true;
          if(!(obj instanceof Community)) return false;

          Community community = (Community)obj;
          return community.getCommunityId() == this.getCommunityId();
   }
Run Code Online (Sandbox Code Playgroud)

当我检查时community==com,它返回false ..为什么?我做错了什么?从数据库中检索这两个对象!

java

1
推荐指数
1
解决办法
2万
查看次数

在 java 中使用 == 运算符比较 Class&lt;T&gt; 对象是个好主意吗?

在 .NET 中,在比较 Type 对象时我可以不用 == 。是否可以使用相同的运算符来比较 Java 中的 Class 对象,还是应该始终使用 equals() 方法?

java reflection

1
推荐指数
1
解决办法
310
查看次数

==和equals()之间的区别

我有个问题.我不知道这有什么意义,但我真的需要一个答案

当我使用"=="作为

Integer i1 =10;
Integer i2 = 10;
if(i1 == i2) {System.out.println("same object")}
Run Code Online (Sandbox Code Playgroud)

output =同一个对象

但是,如果我使用"=="

String obj1 = new String("xyz");

String obj2 = new String("xyz");

if(obj1 == obj2)
   System.out.println("obj1==obj2 is TRUE");
else
  System.out.println("obj1==obj2 is FALSE");
Run Code Online (Sandbox Code Playgroud)

输出= FALSE

我知道"=="运算符会查找对象的内存位置.但是在第一个例子中发生了什么 i1和i2不是不同的对象?

java

0
推荐指数
1
解决办法
224
查看次数

标签 统计

java ×6

equals ×2

hashcode ×1

query-string ×1

reference ×1

reflection ×1

request ×1