草庐IT

COMPARETO

全部标签

FindBugs问题EQ_COMPARETO_USE_OBJECT_EQUALS的解决方法

本文记录的是2016年4月初发生的事情。前几天,标准CI的静态检查页面发现一个项目组同事引入的FindBugs问题,EQ_COMPARETO_USE_OBJECT_EQUALS,CI对这个问题给出的介绍如下ClassdefinescompareTo(...)andusesObject.equals()同事没见过这个问题,不了解如何修改,于是在中午回基地吃饭的路上一起讨论这个问题。其实这个问题并不复杂,也不困难。FindBugs工具是在抱怨一个JavaBean类实现了Comparable接口,但却使用了父类(java.lang.Object类)的equals方法,没有覆盖父类的实现,违反了接口的

FindBugs问题EQ_COMPARETO_USE_OBJECT_EQUALS的解决方法

本文记录的是2016年4月初发生的事情。前几天,标准CI的静态检查页面发现一个项目组同事引入的FindBugs问题,EQ_COMPARETO_USE_OBJECT_EQUALS,CI对这个问题给出的介绍如下ClassdefinescompareTo(...)andusesObject.equals()同事没见过这个问题,不了解如何修改,于是在中午回基地吃饭的路上一起讨论这个问题。其实这个问题并不复杂,也不困难。FindBugs工具是在抱怨一个JavaBean类实现了Comparable接口,但却使用了父类(java.lang.Object类)的equals方法,没有覆盖父类的实现,违反了接口的

java - 如何根据出生日期准确计算 Java 中的年龄

我正在尝试计算占月的java中的年龄,因此仅减去年是行不通的。我还想告诉用户今天是不是他们的生日。这是我到目前为止的代码,但恐怕有点偏离。即使它比较的两个日期相等,它也不会判断今天是否是生日。我最初尝试计算的方式是使用毫秒。你看到2种获取当前日期的方法的原因是因为我正在尝试让它工作,但想向所有人展示我的工作,以便他们可以为我指明正确的方向。编辑澄清我的意思是2015-1993可以是22岁或21岁,具体取决于他们今年的生日是否已经过去。考虑到这一点,我想确定我得到了正确的年龄。publicclassShowAgeActivityextendsAppCompatActivity{priva

BigDecimal的equals方法和compareTo方法的区别

面试经常会问道为什么不能用BigDecimal的equals方法做等值比较?其实BigDecimal的equals方法和compareTo并不一样,equals方法会比较两部分内容,分别是值(value)和标度(scale),而对于1.0和1这两个数字,他们的值虽然一样,但是精度是不一样的,在使用equals比较的时候会返回false。知识扩展BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的

java - Hadoop 中的二次排序

我正在做一个hadoop项目,在多次访问各种博客和阅读文档之后,我意识到我需要使用hadoop框架提供的二次排序功能。我的输入格式是这样的:DESC(String)Price(Integer)和一些其他文本我希望reducer中的值按价格降序排列。此外,在比较DESC时,我有一个方法接受两个字符串和一个百分比,如果两个字符串之间的相似性等于或大于百分比,那么我应该将它们视为相等。问题是在ReduceJob完成后,我可以看到一些与其他字符串相似的DESC,但它们在不同的组中。这是我的Composite键的compareTo方法publicintcompareTo(VendorKeyo){

java - 使用 compareTo 实现 equals 方法

一般问题:在Java中实现默认equals方法的重写时,对于简单地使用已经实现的compareTo方法与将独立逻辑写入其中,我应该注意什么?等于方法?我注意到有人在另一个问题中提到foo.equals((String)null)返回false而String.compareTo((String)null)抛出NullPointerException。是什么让这些不一致的结果成为理想的功能?示例equals方法:@Overridepublicbooleanequals(Objectobj){if(obj!=null&&objinstanceofMyClass){MyClassmsg=(My

Java 泛型 : compareTo and "capture#1-of ?"

下面给我一条错误信息:publicstaticList>merge(Set>>lists){List>result=newLinkedList>();HashBiMap>,Integer>location=HashBiMap.create();inttotalSize;for(List>l:lists){location.put(l,0);totalSize+=l.size();}booleanfirst;List>lowest;//thelistwiththelowestitemtoaddintindex;while(result.size()>l:lists){if(!l.isEm

java - 实现 Comparable、compareTo 名称冲突 : "have the same erasure, yet neither overrides the other"

我想要一个compareTo方法,它接受一个Real(一个用于处理任意大且精确的实数的类[好吧,只要它现在的长度小于2^31])和一个compareTo接受对象的方法,但Java不允许,而且我没有足够的经验知道原因。我刚刚尝试修改类以实现Comparable,但在下面收到了这些错误消息。我真的不明白错误消息是什么意思,但我知道这与我试图通过我创建的每个方法的所有不同方法签名为类提供一些灵active的可怕方式有关,我可以修复它通过删除compareTo(Objectother)方法,但理想情况下我想保留它。所以我真正想问的是:有没有一种方法可以在不删除compareTo(Objecto

java - 为什么 new BigDecimal ("0.015").compareTo(new BigDecimal(0.015)) 返回 -1?

这个问题在这里已经有了答案:Whyarefloatingpointnumbersinaccurate?(5个答案)BigDecimalcompareTonotworkingasexpected(1个回答)关闭7年前。为什么newBigDecimal("0.015").compareTo(newBigDecimal(0.015))返回-1?如果我希望这两者相等,是否有其他方法来比较它们?

java - 为实现 Comparable 的泛型类创建一个 compareTo

我有一个带有两个类型变量的通用类,它实现了java.lang.Comparable。publicclassDoubleKeyimplementsComparable>{privateKkey1;privateJkey2;publicDoubleKey(Kkey1,Jkey2){this.key1=key1;this.key2=key2;}publicKgetFirstKey(){returnthis.key1;}publicJgetSecondKey(){returnthis.key2;}//needforComparableinterfacepublicintcompareTo(Do