gpt4 book ai didi

两个 LocalDateTimes 的 java 比较器

转载 作者:行者123 更新时间:2023-11-30 06:12:53 26 4
gpt4 key购买 nike

一个名为 MyCustomClass 的自定义类有一个属性,它是 joda LocalDateTime。我需要创建一个 java.util.Comparator 类来通过 TimeStamp 属性比较 MyCustomClass 的实例,该属性的类型为 LocalDateTime 。我已经阅读了几篇关于此的帖子(包括 this one ),并且我已经尝试了所有方法,但答案中显示的方法似乎都不起作用。例如下面几种方式会抛出编译错误:

import java.time.temporal.ChronoUnit;
import java.util.Comparator;

import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Period;

import my.app.model.MyCustomClass;

public class MyCustomClassComparator implements Comparator<MyCustomClass>{
public int compare(MyCustomClass mcc1, MyCustomClass mcc2) {
//this first attempt throws a return type error for the method.
return Period.fieldDifference(mcc2.getTimestamp(), mcc1.getTimestamp());
//This next attempt says that LocalDateTimes are not valid arguments
Duration.between(mcc2.getTimestamp(), mcc1.getTimestamp());
//The next approach also says LocalDateTimes are not valid arguments.
DateTime.parse(mcc2.getTimestamp()), mcc1.getTimestamp()).getSeconds();
//This boilerplate approach says the minus sign is not valid for LocalDateTime
return mcc1.getTimestamp() - mcc2.getTimestamp();
}
}

我打算在代码的其他地方使用它,例如:

List<MyCustomClass> mccs = new ArrayList<MyCustomClass>();
// Sort by time stamp:
Collections.sort(mccs, new MyCustomClassComparator());

我如何编写一个 Comparator 类来根据它们的 Joda LocalDateTime 属性比较 MyCustomClass 的实例?

最佳答案

如果您只需要一个比较器实例:

类似于Iłya Bursov的答案,因为 LocalDateTime 实现可比较,你可以使用 Comparator.comparing

Comparator.comparing(MyCustomClass::getTimestamp)

关于两个 LocalDateTimes 的 java 比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com