-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'のインスタンスを返さないので、そのキャストはできません。これを修正するには、 'DateS'ではなく' Date'を返すだけです。 –
Swiftでは、クラスの拡張を作成するときに、そのクラスに機能を追加できます。 Javaと同等のものは何ですか? Dateクラスに新しい属性とメソッドを直接追加するにはどうすればよいですか? –
@ JorgeHenrique javaと同等のものはありません。おそらく返された 'Date'を' DateS'クラスにラップする必要があります。委任したり、追加の機能を追加することができます。 –