Java 从一个方法中获取两种不同类型的数据和结构

Java 从一个方法中获取两种不同类型的数据和结构,java,class,methods,jodatime,Java,Class,Methods,Jodatime,下面的课程将比较固定的日常时间,然后返回最接近的时间。(使用Joda时间库) 要从一个方法返回多个对象,可以通过一个特殊的类来实现。 类似于 public class TimeComparisonResult { private LocalTime result; private long resultOffset; } 然后像这样改变getClosestFutureTarget public TimeComparisonResult getClosestFutureTar

下面的课程将比较固定的日常时间,然后返回最接近的时间。(使用Joda时间库)


要从一个方法返回多个对象,可以通过一个特殊的类来实现。 类似于

public class TimeComparisonResult {

    private LocalTime result;
    private long resultOffset;

}
然后像这样改变getClosestFutureTarget

public TimeComparisonResult getClosestFutureTarget(DateTime now) {
然后,要对列表进行排序,可以通过设置

public class LocalTime implements Comparable<LocalTime> {
    ...
    public int compareTo(LocalTime o){
         // compare "this" to o
    }
}
public类LocalTime实现了可比较的{
...
公共整数比较(本地时间o){
//将“this”与o进行比较
}
}
有关如何实现compareTo的详细信息,请阅读以下内容:


然后,您可以使用集合排序来对列表进行排序。

要从一个方法返回多个对象,您可以通过一个特殊的类来执行。 类似于

public class TimeComparisonResult {

    private LocalTime result;
    private long resultOffset;

}
然后像这样改变getClosestFutureTarget

public TimeComparisonResult getClosestFutureTarget(DateTime now) {
然后,要对列表进行排序,可以通过设置

public class LocalTime implements Comparable<LocalTime> {
    ...
    public int compareTo(LocalTime o){
         // compare "this" to o
    }
}
public类LocalTime实现了可比较的{
...
公共整数比较(本地时间o){
//将“this”与o进行比较
}
}
有关如何实现compareTo的详细信息,请阅读以下内容:


然后,您可以使用
Collections.sort
对列表进行排序。

要返回两个值,请创建一个包含这两个值的
对象并返回该值。为了订购
列表
,您需要
本地时间
实现可比较的
。您还可以向其他
集合提供
比较器
。compare
方法。@BoristheSpider感谢您Boris。要返回两个值,请创建一个包含这两个值的
对象
,并返回该值。为了订购
列表
,您需要
本地时间
实现可比较的
。您还可以向其他
集合提供
比较器
。compare
方法。@BoristheSpider谢谢您Boris。谢谢。你明确地说,但我对Java和android都是新手。我做过类似的事情:但第3、4和29行出现错误。关于排序,是在类末尾的父类(
TimeComparitor
)中吗?@dummy初学者,这完全是错误的。注意Simon发布的代码在实用程序类中没有
静态
声明。您需要创建实用程序类的实例并返回该实例。@BoristheSpider是的,您是对的。我还使用了
private
声明,但变量在
getClosestFutureTarget
方法中没有解析,所以我按照IDE的建议将它们更改为静态。你可能觉得这很有趣,但我绝对是个新手:开始学习的好地方是这里:。特别是“学习Java语言”部分。谢谢。你明确地说,但我对Java和android都是新手。我做过类似的事情:但第3、4和29行出现错误。关于排序,是在类末尾的父类(
TimeComparitor
)中吗?@dummy初学者,这完全是错误的。注意Simon发布的代码在实用程序类中没有
静态
声明。您需要创建实用程序类的实例并返回该实例。@BoristheSpider是的,您是对的。我还使用了
private
声明,但变量在
getClosestFutureTarget
方法中没有解析,所以我按照IDE的建议将它们更改为静态。你可能觉得这很有趣,但我绝对是个新手:开始学习的好地方是这里:。特别是“学习Java语言”部分。