gpt4 book ai didi

Java 接口(interface)/比较器

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:23 25 4
gpt4 key购买 nike

我是 java 的新手,正在尝试理解一些概念。这是一段我不明白的代码。

public static Comparator<Fruit> FruitNameComparator = new Comparator<Fruit>() 
{
public int compare(Fruit fruit1, Fruit fruit2)
{
return fruit1.quantity - fruit2.quantity;
}
};

我知道这是在做什么,但不明白为什么允许这样做。所以我的问题是:

  1. 在 java 文档中,Comparator[T] 是一个接口(interface)。比较器[水果]怎么样?我假设它是一个类,因为它必须覆盖比较函数。
  2. 为什么 FruitNameComparator 可以使用非参数构造函数和 {} 中的类定义来初始化?我在 Comparator[T] 的 javadoc 中没有找到这样的构造函数声明。

我们将不胜感激。

最佳答案

此代码使用了 Java 的一项功能,称为 anonymous inner classes .您指定要实现/扩展的接口(interface)或父类(super class),以及匿名类主体。您的匿名内部类实现了 Comparator<Fruit> .

关于Java 接口(interface)/比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156692/

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