-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”类中。那么你可以委托并添加额外的功能。 –