-1
我有一類這樣的:Java的向下轉換的自定義類擴展日期 - 運行時錯誤
public class DateS extends Date {
public DateS yesterday(){
Calendar cal = Calendar.getInstance();
cal.setTime(this);
cal.add(Calendar.DAY_OF_YEAR, -1);
return (DateS) cal.getTime();
}
}
可以成功構建。在運行時,當我撥打date.yesterday()
時,會丟棄Cannot cast 'java.util.Date' to 'myproject.package.DateS'
。
我需要知道爲什麼以及如何解決這個問題。
好吧,'Calendar.getTime()'不會返回'myproject.package.DateS'的實例,所以你不能這樣做。爲了解決這個問題,你可以只返回一個Date,而不是DateS。 –
在Swift上創建類的擴展時,可以爲它們添加功能。 Java中的等價物是什麼? 如何直接向Date類添加新的屬性和方法? –
@JorgeHenrique沒有與java中的相同。您可能需要將返回的「Date」包裝到「DateS」類中。那麼你可以委託並添加額外的功能。 –