我有這樣的接口:如何繞過Java泛型類型檢查
public T evaluate(float fraction, T startValue, T endValue);
其他代碼對待每一個T
類型爲Object
,最後我會得到的返回值,這是Object
也是。
我想要的是通過startValue
和endValue
作爲整數,但返回一個完全不同的實例(而不是Integer
)。我會強制將返回值轉換爲我所想的。
我所做的就是更換T
與對象,像這樣:
public Object evaluate(float fraction, Object startValue, Object endValue)
但失敗了,我想如果像? extends T
定義的接口將工作,但事實並非如此。 (對嗎?)
那麼有沒有什麼辦法可以繞過泛型類型檢查?
'我要的是通過在startValue和endValue值作爲interger' - 爲什麼不寫'公共whateverTypeYouWantToReturn評估(浮動部分,詮釋在startValue,INT endValue值);'? – Eran
@Eran這是一個我無法修改的界面。所以我正在尋求解決方法。 – reavenisadesk
這並沒有絲毫的意義。首先,描述如何通過用Object替換類型參數來更改接口方法,然後在評論中告訴我們不能修改接口。 – Holger