gpt4 book ai didi

Java 方法重载 - 两个列表

转载 作者:行者123 更新时间:2023-12-01 16:42:38 25 4
gpt4 key购买 nike

我想问一下如何重载java方法,如下所示:

    public static int printAll(List<Class1> list) {
int i = 0;
for (Class1 e: list) {
System.out.println(e.getName());
}

return i;
}

public static int printAll(List<Class2> list) {
int i = 0;
for (Class2 e: list) {
System.out.println(e.getName());
}
return i;
}

Class1Class2 都实现了 getName() 方法。

谢谢

最佳答案

调用者必须传入一个附加参数以了解如何从列表中的对象中获取名称是否可以接受?你可以使用这样的东西:

public static <T> int printAll(List<T> list, Function<T, String> nameExtractor) {
int i = 0;
for (T e: list) {
System.out.println(nameExtractor.apply(e));
}
return i;
}

然后你可以将其称为:

printAll(list1, Class1::getName);

或者:

printAll(list2, Class2::getName);

关于Java 方法重载 - 两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61834108/

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