gpt4 book ai didi

java - 类类型作为Java中的参数

转载 作者:行者123 更新时间:2023-12-01 23:43:46 25 4
gpt4 key购买 nike

我有一个方法:

private List<ApplicationForVacancy> createListOfApplicationsForVacancy(List<Document> documents) {
return documents.stream()
.filter(d -> d instanceof ApplicationForVacancy)
.map(d -> (ApplicationForVacancy) d)
.collect(Collectors.toList());
}

但是我想在参数中传递类的名称/类的类型,并像这样返回方法的类型:

private List<TypeOfSomeClass> createList (List<Document> documents, String or Type typeOfSomeClass) {
return documents.stream()
.filter(d -> d instanceof typeOfSomeClass)
.map(d -> (typeOfSomeClass) d)
.collect(Collectors.toList());
}

这可能吗?我该怎么做?

最佳答案

您必须提供一个 Class 对象来声明类型并向该方法添加一个类型参数,如下所示:

private static <T> List<T> filterType(List<?> input, Class<T> clazz) {
return input.stream()
.filter(clazz::isInstance)
.map(clazz::cast)
.collect(Collectors.toList());
}

然后您可以像这样调用该方法:

List<Object> stuff = List.of("String", Integer.valueOf(3), Double.valueOf(42), new Object());
List<String> strings = filterType(stuff, String.class);
List<Number> numbers = filterType(stuff, Number.class);

strings 将仅包含 Stringnumbers 将包含 2 个数值。

关于java - 类类型作为Java中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64622077/

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