在 hibernate 中创建我们使用的标准
Criteria criterea=session.createCritera(SomeClass.class)
它也可能在其他一些示例中可用,但我无法理解这些类型方法的结构。
注意 这是我试图用来理解SomeClass.class
像参数一样使用的例子
我的问题是 SomeClass.class
的目的是什么?我们为什么需要它,使用它作为参数有什么好处。
编辑 它不是重复的,但与 this question 有字符串连接
最佳答案
这是什么.class
语法?
如果附上 .class
在类名的末尾,你会得到 Class<T>
类对应的对象。
例子:
-
String.class
返回Class<String>
的实例 -
Integer.class
返回Class<Integer>
的实例
类对象能做什么
反省!如果你有权访问一个类对象,你可以做各种很酷的事情!您可以调用方法、获取和设置字段的值...
为什么在 Hibernate 中使用它?
我以前没有使用过 hibernate,但这种语法也用在其他库中,尤其是在 ORM 或 JSON 序列化程序中。我将使用 JSON 序列化程序作为示例,因为我对它们更熟悉。
在 JSON 序列化器中,你需要给它一个类对象,因为它需要获取你想要序列化为 JSON 的所有字段。它使用反射来获取和设置这些字段的值,然后将它们转换为 JSON。当它反序列化JSON时,它会找到JSON中需要设置名称的字段。这些操作需要 Class
对象,因为没有它,Java 怎么知道它应该在哪个类中找到该字段?此外,要创建一个带有反射的新对象,一个 Class
也是需要的!
关于java - someMethod(SomeClass.class) 的底层过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879991/