gpt4 book ai didi

java - Java 中比较器接口(interface)的构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:57 26 4
gpt4 key购买 nike

我知道接口(interface)不能有构造函数,我们不能创建接口(interface)的对象。

这是不可能的:

Comparator cmp = new Comparator(); 

我不明白如何使用关键字“new Comparator()”创建匿名内部类。这个关键字不是创建了一个 Comparator 类型的对象吗?

完整代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class DemoApp {

public static void main(String args[]) {

List<String> animals = new ArrayList<>();
animals.add("elephant");
animals.add("snake");
animals.add("lion");
animals.add("mangoose");
animals.add("cat");
animals.add("tiger");

Collections.sort(animals, new Comparator<String>() {
public int compare(String s1, String s2) {
return -s1.compareTo(s2);
}
});
displayList(animals);
}

public static void displayList(List<String> anim) {
for (String animal : anim) {
System.out.print(animal + " ");
}
System.out.println();
}
}

最佳答案

Doesn't this keyword create an object of the type Comparator?

是的,但它不会创建类 Comparator 的实例(因为 Comparator 不是类)。

它创建一个实现Comparator 接口(interface)的匿名类的实例。由于该类实例实现了 Comparator,因此您可以说它的类型是 Comparator

关于java - Java 中比较器接口(interface)的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937586/

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