2 回答

TA貢獻(xiàn)1780條經(jīng)驗 獲得超5個贊
換行就行
final Integer[] LIS = (Integer[]) lis(arr);
到
final Comparable[] LIS = lis(arr);
并更新 for 循環(huán)。
您的方法返回一個 Comparable 數(shù)組,因此您不能向下轉(zhuǎn)換為 Integer 數(shù)組,但由于您的數(shù)字的實現(xiàn)是 Integers,因此在運行時它們?nèi)匀槐灰暈檎麛?shù)。
無論如何,將結(jié)果設(shè)置為 Integer 數(shù)組與創(chuàng)建泛型方法的目的背道而馳。對于要傳遞給你的方法的東西,它必須有一個 compareTo 方法,并且固有地有一個 toString 方法,并且它滿足你需要程序做的一切。

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊
這里沒有什么可以解決的。這里:
Integer[] LIS = (Integer[]) lis(...)
您的方法 lis() 返回一個 Comparable 對象數(shù)組。Comparable 數(shù)組不是 Integer 數(shù)組!因此,該轉(zhuǎn)換在概念上不起作用。
是的,該數(shù)組包含 Integer 對象,但數(shù)組類型不是“整數(shù)數(shù)組”。
您必須迭代結(jié)果數(shù)組,然后才能投射各個條目。但是你不能將數(shù)組類型本身轉(zhuǎn)換成它不是的東西!
除此之外,您可以將泛型與列表一起使用。
添加回答
舉報