我有返回的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