2016-04-09 7 views
3

JDK 1.8 LocalDateクラスをラップすることなく拡張できますか?Java:LocalDate(LocalDateTime)クラスを拡張する

public class UserLocalDate extends LocalDate implements UserType { 
    //Cannot inhertit from final java.time.LocalDate 
} 

クラスはfinalなので、直接拡張することはできません。同じメソッドを持つクラスを取得するために、同様の抽象クラスが拡張されているのでしょうか。

実行しようとしているのは、実行時環境内でLocalDateになるHibernateカスタムUserType日付クラスを作成し、特定のルールを使用して生成された整数としてデータベースに格納されることです。

答えて

1

あなたはChronoLocalDateインターフェイスを実装することができますが、クラスをラップすることが最善の選択肢になります。

+0

はい、ラッピングを使用しています。 'ChronoLocalDate'を実装することは、自分の' LocalDate'をスケッチから書くのと同じように聞こえるでしょう。 –

+0

@OlegMikhailov私はあなたが実際に必要とする方法を実装するだけです。 'ChronoLocalDate'の全体を実装することは過度の可能性があります。 –

1

LocalDateを拡張することはできません。ご使用の環境で実装がLocalDateになるようにすることはできません。 ChronoLocalDateを実装する場合でも、ではなく、LocalDateとなります。

LocalDateを日付データベースの値としてデータベースに格納してみませんか?どのHibernateバージョンを使用していますか? Hibernateバージョン5以降、これらの日付タイプがサポートされています。古いバージョンを使用している場合は、AttributeConverterを使用できます。私は少し前にこれについてblog postを書きました。あなたはこの方法をチェックしたいかもしれません。

+0

ありがとう!私はHibernate 5を使用していますが、日付は日付型ではなく4バイトの整数型として保存する必要があります。以前は 'AttributeConverter'を使っていましたが、内部で' LocalDate'がラップされた状態でHibernate 'UserType'を実装する方が簡単です。 –

関連する問題