私はなぜJavaのアノテーションがあまりにも多く使われているのか聞いてみたいのですが...私は彼らがxpの設定をjpaに置き換えたことを知っていますが、なぜこの種の設定が使われていますか? なぜJavaアノテーションですか?
@Entity
class Ent{
// some fields
}
//... somewhere in the other file far far away
class NonEnt{
// whatever here
}
ここで、
EntityManager
のpersistメソッドを使用して永続コンテキストに入れようとすると、
NonEnt
インスタンスを実行しようとするとランタイムエラーが発生します(コンパイルエラーが発生しやすくなります)。私には明白な解決策があります。@Annotationsを使用する代わりに、エンティティに何らかのメソッドなしインターフェイスを実装させるようにしてください。しかし、これはフレームワークデザイナーの間では一般的ではありませんが、このソリューションの欠点は何ですか?
お返事ありがとう...
このライブラリの開発者にとっての設計上の質問です。コンパイル時のエラーは実行時のエラーよりも優れています。おそらくJavaコンパイラは引数の注釈を指定する方法を持っているはずですか?それが達成されるまで、マーカインタフェースが良いでしょう。 –
最近、質問を閉じるためのリクエストが多すぎます...なぜ人々は質問を閉じる理由を正当化しませんか? –
下位互換性は、これらの重要な決定の多くを引き起こします。彼らはXMLファイルだけを持っていたときに、Javaクラスを変更する必要はないと思っていたかもしれません。しかし、今は古いバージョンを壊さずにインターフェイスを強制することはできません。アノテーションを使用すると、このORをXMLファイルとして使用できます。インターフェイスを使用するには、XMLのユーザーであっても、すべてのコードを変更する必要があります。 –