PreferJavaUtilObjectsEquals does not check for existing equals method
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
找到 PreferJavaUtilObjectsEquals recipe 及其相关测试,然后复现 issue 中的 Java 代码片段。当迁移生成带限定符的 Objects.equals 调用,且在已有 equals 方法时不会引入被遮蔽或未使用的静态导入时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
How are you running OpenRewrite?
I am using the Maven plugin, and my project is a single module project.
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>5.23.1</version>
<configuration>
<activeRecipes>
<recipe>org.openrewrite.java.migrate.guava.NoGuavaJava11</recipe>
</activeRecipes>
<failOnDryRunResults>true</failOnDryRunResults>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-migrate-java</artifactId>
<version>2.10.0</version>
</dependency>
</dependencies>
</plugin>
What is the smallest, simplest way to reproduce the problem?
I haven't compiled this, but I hope the point gets across: the unconditional static import of java.util.Objects.equals is shadowed by the existing equals method
import static com.google.common.base.Objects.equal;
class A {
int foo;
int ba;
@Override
boolean equals(A other) {
//omitting the nullchecks
return equal(foo, other.foo) && equal(ba, other.ba);
}
}
What did you expect to see?
import java.util.Objects;
class A {
int foo;
int ba;
@Override
boolean equals(A other) {
//omitting the nullchecks
return Objects.equals(foo, other.foo) && Objects.equals(ba, other.ba);
}
}
What did you see instead?
import static java.util.Objects.equals; //unused!
class A {
int foo;
int ba;
@Override
boolean equals(A other) {
//omitting the nullchecks
return equals(foo, other.foo) && equals(ba, other.ba);
}
}
Are you interested in contributing a fix to OpenRewrite?
No, just letting you know.
- 主要语言
- Java
- 星标
- 159
- 派生
- 130
- 平均合并
- 6 小时 49 分钟
- 30 天内合并 PR
- 47
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
openrewrite/rewrite-migrate-java 的其他 Issue
-
bug
难度 4/5 3-5 天 新手友好度 68/100
openrewrite/rewrite-migrate-java#1246 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 32/100
openrewrite/rewrite-migrate-java#1227 · 2 条评论 ·
维护者通常 1 天内回复
-
OptionalNotPresentToIsEmpty rewrites `!isPresent()` on a non-`java.util.Optional` type, producing uncompilable `isEmpty()`可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 3/5 1-2 天 新手友好度 70/100
openrewrite/rewrite-migrate-java#1146 · 3 条评论 ·
维护者通常 1 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 50/100
openrewrite/rewrite-migrate-java#1119 · 5 条评论 ·
维护者通常 1 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 45/100
openrewrite/rewrite-migrate-java#1069 · 2 条评论 ·
维护者通常 1 天内回复
查看 openrewrite/rewrite-migrate-java 的全部 Issue
相似的 Issue
-
NullPointerException when a `DeserializationProblemHandler` returns `null` for `byte[]` (single value unwrapped) and `char[]` elements可能已有人在做 @Marti2203 今天认领。 未关闭
难度 2/5 半天 新手友好度 88/100
FasterXML/jackson-databind#6300 ·
维护者通常 1 天内回复
-
content good first issue
难度 1/5 1 小时以内 新手友好度 95/100
cpinitiative/usaco-guide#6699 ·
维护者通常 1 天内回复
-
BC remittance upload: a claim MSP refused (S03) is saved with a blank status instead of refused (F)未关闭type: bug
难度 2/5 1-3 小时 新手友好度 88/100
carlos-emr/carlos#4933 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
apache/rocketmq-dashboard#6925 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
Vakore/ZappierGames#147 ·