Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段?_Java_Nhibernate_Hibernate - Fatal编程技术网

Java 为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段?

Java 为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段?,java,nhibernate,hibernate,Java,Nhibernate,Hibernate,为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段 这是VM和CLR之间的差异造成的吗?在Java中,默认情况下所有方法都是虚拟的。在.NET中,您需要显式地将一个方法标记为虚拟的。在Java中,默认情况下,所有方法都是虚拟的。在.NET中,您需要显式地将方法标记为虚拟的。因为Java中的默认行为是方法可以重写,除非指定了final关键字,而在.NET中,除非指定了virtual关键字,否则方法是不可重写的。因为Java中的默认行为是方法是可

为什么hibernate不强制您将字段标记为虚拟字段,而nhibernate却强制您将字段标记为虚拟字段


这是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:哪一位听起来非常奇怪?