gpt4 book ai didi

java - 如何手动将泛型参数传递给方法

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

我有方法:

public static <T> Stream<T> stream(JSONArray array) {
return IntStream.range(0, array.length()).mapToObj(i -> {
try {
return (T) array.get(i);
} catch (JSONException e) {
return null;
}
});
}

当我这样调用它时:stream(array).map((JSONObject object) -> { /* ... */ }) ,我收到错误

Cannot infer functional interface type

并且,stream<JSONObject>(array).map(object -> { /* ... */ })不起作用。

stream(array).map(object -> { /* ... */ })有效,但是 object就是一个Object

最佳答案

And, stream<JSONObject>(array).map(object -> { /* ... */ }) doesn't work.

那是因为您将类型见证放在了错误的位置。尝试:

TheContainingClass.<JSONObject>stream(array).map(object -> { /* ... */ })

但是您的代码不是类型安全的:强制转换为 T未选中。您应该简单地返回 Stream<JSONObject> ,并让调用者处理对其他类型的转换。

关于java - 如何手动将泛型参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562508/

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