`
liaobinxu
  • 浏览: 43328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

equals,hashcode,toString

阅读更多
今天看到一个关于equals,hashcode,toString方法的类型下面是关于具体实现
@Override
	public boolean equals(Object o) {
		if (this == o)
			return true;
		if (o == null || getClass() != o.getClass())
			return false;

		//使用<?>表示运行时才知道类型
		DBObject<?> dbObject = (DBObject<?>) o;

		//在if()中使用'?:',!equal和!=配套使代码简洁
		if (alias != null ? !alias.equals(dbObject.alias)
				: dbObject.alias != null)
			return false;
		if (expression != null ? !expression.equals(dbObject.expression)
				: dbObject.expression != null)
			return false;

		return true;
	}

@Override
	public int hashCode() {
		int result = alias != null ? alias.hashCode() : 0;
		result = 31 * result + (expression != null ? expression.hashCode() : 0);
		return result;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder(expression);
		if (hasAlias()) {
			sb.append(SPACE).append(AS).append(SPACE).append(alias);
		}
		return sb.toString();
	}
0
0
分享到:
评论

相关推荐

    TEH:Java Tostring Equals Hashcode with annotations

    TEH 使用注解来实现 toString、equals 和 hashCode,并强制执行这 2 条规则 任何用于 hashCode 的属性都将用于 equals 和 toString 用于 equals 的任何属性都将用于 toString 注释是 @ToString @ToStringEquals ...

    Java的Object类讲解案例代码 equals()、hashCode()、finalize()、clone()、wait()

    Object类是所有Java类的根类,它定义了一些常用的方法,例如equals()、hashCode()、toString()等。本案例代码将详细展示Object类的使用方法,并提供一些实际场景下的案例,以帮助开发者更好地理解和运用这些方法。 ...

    dart_dataclass:Dart 数据类(equals、hashCode、toString、copyWith)方法生成器

    hashCode 字符串 复制与 入门 0. 将依赖添加到 pubspec.yaml dependencies : dataclass : latest_version dev_dependencies : dataclass_generator : latest_version 1. 用@dataClass 注释你的类 班级应该: ...

    java中Hashcode的作用.docx

    Hashcode是Java编程语言中一个非常重要的概念,它在equals方法中扮演着关键角色。在Java中,每个对象都具有一个独特的Hashcode,它可以用来标识对象的身份。但是Hashcode是什么?它是如何产生的?有什么作用?下面...

    EqualsHashCodeToStringBuilders-Java8:等于,使用Lambdas,Java8的HashCode和ToString Builder

    等于,HashCode和ToString构建器使用Java8实现Equals,HashCode和ToString Builder。建立资讯使用Gradle 2.0进行构建。 请不要签入Eclipse或Intellij或任何特定于IDE的文件。 对于Idea或Eclipse,可以使用以下命令...

    java中重写equals()方法的同时要重写hashcode()方法(详解)

    Java 中重写 equals() 方法的同时要重写 hashCode() 方法的重要性 在 Java 中,equals() 方法和 hashCode() 方法是两个紧密相关的方法,它们都是用于比较和标识对象的方法。equals() 方法用于比较两个对象的值是否...

    学习Object类——为什么要重写equeals和hashcode方法

    此外,Object 类的设计是为了扩展,它提供了一些非 final 方法,如 equals、hashCode、toString、clone 和 finalize,这些方法都有通用的约定,需要在子类中被覆盖(override)。如果不遵守这些约定,依赖这些约定的...

    hashCode的作用

    以下是一段示例代码,展示了如何使用`hashCode`方法和`equals`方法,并且解释了它们之间的关系: ```java public class Test { public static void main(String[] args) { HashSet&lt;Demo1&gt; set = new HashSet(); ...

    Java toString的性能优化方案比较

    谁在关心toString的性能?没有人!除非当你有大量的数据在批量处理,使用...我们所钟爱的IDE们常常为我们生成equals/hashcode/toString这些方法,且我们通常不再去管它们。此外,这些IDE们提供了许多方式来生成我们自己

    kassava:该库提供了一些有用的kotlin扩展函数,用于在没有所有样板的情况下实现toString(),hashCode()和equals()

    卡萨瓦 该库提供了一些有用的kotlin扩展函数,用于在没有所有样板的情况下实现toString() , equals()和hashCode() 。 该库的主要动机是用于无法使用数据类且需要通过以下方式实现toString() / equals() / hashCode...

    JAVA_高级特性(hashCode,clone,比较器,Class反射,序列化)

    为了确保散列表的正确性,重写 `equals` 方法时,通常也需要重写 `hashCode` 方法,以保证两个相等的对象拥有相同的哈希码。 在示例代码中,`Person02` 类实现了 `hashCode` 方法,它将 `name` 字段的哈希码与 `age...

    eclipse整合lombok文档

    它可以自动为 Java 类生成 getter、setter、equals、hashCode、toString 等方法,从而提高开发效率。 Eclipse 整合 Lombok 要在 Eclipse 中整合 Lombok,需要进行以下步骤: 1. 下载 Lombok 的 Jar 包,地址是 ...

    小辣椒插件lombok.rar

    小辣椒插件Lombok是一款广泛应用于Java开发领域的工具,它极大地简化了代码的编写,特别是对于getter、setter、equals、hashCode、toString等繁琐的样板代码。Lombok通过注解处理器在编译时自动插入这些方法,使得源...

    eclipse插件 org.jiayun.commons4e

    在软件开发过程中,编写ToString、Equals以及HashCode方法是程序员常见的任务,这些基础性的工作虽然重要,但重复性较高,往往占据了一定的开发时间。为此,Eclipse社区推出了名为org.jiayun.commons4e的插件,旨在...

    eclipse-guava-插件

    在Eclipse中使用Guava插件可以显著提升开发效率,特别是对于生成`toString()`、`hashCode()`和`equals()`等方法时。 `toString()`方法是Java中用于返回对象状态的字符串表示,通常在调试和日志记录时非常有用。...

    lombok-plugin-0.16-2017.3.3

    Lombok是一款非常流行的Java库,它通过提供一系列的注解,极大地简化了Java代码的编写,尤其是对于getter、setter、构造函数、equals、hashCode以及toString等常见方法的生成。Lombok的主要目标是减少样板代码,让...

    lombok的jar包.zip

    Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。...

    测试listBox1.Items.Remove是用ToString还是利用gethashCode来定位元素的

    标题提到的“测试`listBox1.Items.Remove`是用`ToString`还是利用`GetHashCode`来定位元素”,实际上涉及到两种不同的方法来确定元素身份。 1. **ToString()** 方法: 在C#中,`ToString()`是一个基础方法,用于将...

Global site tag (gtag.js) - Google Analytics