Java 为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段?
为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段Java 为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段?,java,nhibernate,hibernate,Java,Nhibernate,Hibernate,为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段 这是VM和CLR之间的差异造成的吗?在Java中,默认情况下所有方法都是虚拟的。在.NET中,您需要显式地将一个方法标记为虚拟的。在Java中,默认情况下,所有方法都是虚拟的。在.NET中,您需要显式地将方法标记为虚拟的。因为Java中的默认行为是方法可以重写,除非指定了final关键字,而在.NET中,除非指定了virtual关键字,否则方法是不可重写的。因为Java中的默认行为是方法是可
这是VM和CLR之间的差异造成的吗?在Java中,默认情况下所有方法都是虚拟的。在.NET中,您需要显式地将一个方法标记为虚拟的。在Java中,默认情况下,所有方法都是虚拟的。在.NET中,您需要显式地将方法标记为虚拟的。因为Java中的默认行为是方法可以重写,除非指定了final关键字,而在.NET中,除非指定了virtual关键字,否则方法是不可重写的。因为Java中的默认行为是方法是可重写的,除非指定了final关键字,而在.NET中,除非指定了virtual关键字,否则方法是不可重写的。这不是运行时之间的差异,而是语言之间的差异 在C中,默认情况下方法不是虚拟的。在Java中,它们是 请注意,这两个平台都不允许字段为虚拟字段,如问题中所述 Hibernate和NHibernate都需要虚拟方法——这意味着在C中使它们显式虚拟
注意,在Java中,虚拟方法这个术语实际上并没有在语言规范中定义;这里我用它来表示非final:一种可以重写的方法。这不是运行时之间的区别,而是语言之间的区别 在C中,默认情况下方法不是虚拟的。在Java中,它们是 请注意,这两个平台都不允许字段为虚拟字段,如问题中所述 Hibernate和NHibernate都需要虚拟方法——这意味着在C中使它们显式虚拟
注意,在Java中,虚拟方法这个术语实际上并没有在语言规范中定义;在这里,我用它来表示非final:一种可以重写的方法。两种环境中都不能重写Not fields-fields。Not fields-fields在两种环境中都不能重写。@Willi:哪一位听起来非常奇怪?@Willi:哪一位听起来非常奇怪?