我有返回的Function<T,V>
创建的功能接口
public <T, V> Function<T, V>[] foo() {
...
return (Function<T, V>[]) new Object[0];
...
}
空数组的方法,但我赶java.lang.ClassCastException
在运行时空数组。 是否有可能返回一个空的函数接口数组?
我有返回的Function<T,V>
创建的功能接口
public <T, V> Function<T, V>[] foo() {
...
return (Function<T, V>[]) new Object[0];
...
}
空数组的方法,但我赶java.lang.ClassCastException
在运行时空数组。 是否有可能返回一个空的函数接口数组?
你可以做的最接近的事是
return (Function<T, V>[]) new Function[0];
这有什么好做的功能接口,以及一切与数组和仿制药不是很好互动。
谢谢。它有助于。 – AleY
您不能将Object []转换为另一种类型,仅仅因为它不是那种类型。即使数组大小为0,这也适用。
为什么不简单地返回一个0函数的数组?
return new Function[0];
这可能会给出一个“未投”的警告,但它仍然可以工作,因为有在运行时类型Function[]
和参数化类型Function<T, V>[]
由于类型擦除之间没有什么区别。在这种情况下,您可以安全地使用@SuppressWarnings("unchecked")
。
主要问题是:你为什么需要它? – AdamSkywalker
@AdamSkywalker想象一下,我有一种方法可以接受'函数 ...函数'。现在我需要一个接受'R ... objects'的方法。因此,我决定将对象中的每个对象(r)转换为lambda'x - > r',并将它们传递给现有的方法 –
AleY