`
liaobinxu
  • 浏览: 42281 次
  • 性别: 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 注释你的类 班级应该: ...

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

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

    lombok-1.16.18.jar

    自动资源管理,自动生成getter,setter,equals,hashCode和toString等等!

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

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

    Java toString的性能优化方案比较

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

    lombok的jar包.zip

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

    lombok-plugin-0.28-2018.2.zip

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

    IDEA插件-lombok-plugin-0.28-2019.3.rar

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

    lombok-plugin-0.23-IC-2017.3.zip

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

    javaee_tedu_day09.zip

    ATM系统 Clone方法 toString方法:表示返回对象的字符串表示形式 包名.类名@hashCode(内存地址) 打印对象时,默认调用 如果不是想使用object类,toString...如果equal返回true的话,hashCode相同,重写hashCode方法

    eclipse-guava-插件

    eclipse的guava插件,使用guava toStringHelper造成toString函数。同样适用于hashcode equals 等

    Lombok(Java库)

    @EqualsAndHashCode:自动生成 equals 和 hashCode 方法,用于对象的比较和哈希处理。 @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor:自动生成构造函数。 @Data:整合了 @Getter、@...

    vals:来自标准Java接口的可扩展的不可变值对象

    该实现是不可变的,并基于定义的属性实现toString,equals和hashCode。 @Val接口可以使用命名约定来否决默认的hashCode,equals和toString方法。 除非方法为@ javax.annotation.Nullable,否则在构造/

    EqualsTest.java

    "Object超类中Equals方法、toString方法和hashCode方法使用的举例"附件

    lombok-plugin.zip

    @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法 @Getter/@Setter : 注解在类上, 为类提供读写属性 @ToString : 注解在类上, 为类提供 toString() 方法 @Slf4j : 注解在...

    Lombok插件

    使用lombok之后,省去了许多没必要的get,set,toString,equals,hashCode代码,简化了代码编写,减少了代码量.

    1579068285.png

    简单创建代理模式,快速使用。能够让你快速了解代理的好处很使用。...2、重写了equals、hashCode、toString 3、有一个静态代码块,通过反射或者代理类的所有方法 4、通过invoke执行代理类中的目标方法doSomething

Global site tag (gtag.js) - Google Analytics