gpt4 book ai didi

java - 使方法通用

转载 作者:行者123 更新时间:2023-12-01 19:31:33 25 4
gpt4 key购买 nike

我有不同的文档,例如,一份文档引用一个客户,另一份文档引用另一个客户。我有 Pdf(generic) 类,其中包含在不同 Pdf 文档之间共享的方法 > 然后我有一个将 PDDocument 类型对象转换为页面包装类的方法。

我怎样才能不创建 Page ,而是创建一个泛型并返回 client.Page 或 client1,Page 的提升

 public List<Page> splitToPages() {
try {
Splitter splitter = new Splitter();
return splitter.split(getPDDocument()).stream().map(Page::new).collect(Collectors.toList());
} catch (IOException e) {
throw new RuntimeException("Document could not be split", e);
}
}

谢谢

最佳答案

传入一个Function,它获取来自Splitter的内容,并将其转换为您想要的类型:

 public <T> List<T> splitToPages(Function<? super WhateverSplitterReturns, ? extends T> function) {
try {
Splitter splitter = new Splitter();
return splitter.split(getPDDocument()).stream().map(function).collect(Collectors.toList());
} catch (IOException e) {
throw new RuntimeException("Document could not be split", e);
}
}

您可以使用它来调用,例如

List<Page> pages = splitToPages(Page::new);

关于java - 使方法通用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685111/

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