如何解释Java泛型,如<;T>;T,<;T、 V>;查询<;T>,类<;T>;?

如何解释Java泛型,如<;T>;T,<;T、 V>;查询<;T>,类<;T>;?,java,generics,Java,Generics,有Java API: 类Morphia定义了如下方法: <T> T fromDBObject(Class<T> entityClass, com.mongodb.DBObject dbObject) T fromDBObject(类entityClass,com.mongodb.DBObject) 有人能解释一下T和Class的意思吗?该方法是否在集合中返回类型为T的类 Inteface数据存储上的另一个API: <T,V> Query<T>

有Java API:

类Morphia定义了如下方法:

<T> T fromDBObject(Class<T> entityClass, com.mongodb.DBObject dbObject)
T fromDBObject(类entityClass,com.mongodb.DBObject)
有人能解释一下T和Class的意思吗?该方法是否在集合中返回类型为T的类

Inteface数据存储上的另一个API:

<T,V> Query<T> find(Class<T> clazz, String property, V value) 

What <T,V> Query<T> means? Is the method returning an object of type Query that is then surrounded by collection `<T,V>` and `<T>`. This part is very confusing.
查询查找(类clazz,字符串属性,V值)
询问是什么意思?返回查询类型的对象的方法,然后该对象被集合``和``包围。这部分很混乱。
无论何时涉及尖括号
(<>)
,都意味着涉及Java集合,这样说是否正确

很抱歉,我忘了将问题中的某些内容标记为代码,否则会改变问题的全部含义,因此@Vash和@fiver的两个答案与本次编辑之前的问题一致


感谢您指出一些教程,但请提供您在Java泛型方面的专业知识对该问题的具体答案,这将有助于我更好地理解教程。

每当您看到<>,这意味着泛型类,而不仅仅是集合

类只是泛型类的一个示例:

声明中的T表示任何类型的对象(T是类型)


因此DBFromObject方法是一种泛型方法,其中泛型类型用T表示,它返回一个该泛型类型为T的对象,并接受类型为
Class

的参数
Query
并且是Java类

表示将使用一些通用参数T


请阅读,这将澄清泛型。

泛型不限于集合,但集合是理解为什么需要泛型以及如何使用泛型的好例子

假设您创建了一个新的
列表
对象,并且您知道它只包含特定类型的对象(例如,
MyClass
对象)。如果您可以在代码中以某种方式指定它,并且可以自动检查它,那么您可以确保不会将其他类型的对象插入到此列表中。此外,当其他开发人员阅读您的代码时,他们很容易理解此列表只包含“MyClass”对象

泛型允许我们在代码中包含此类信息,而无需重写
列表
类。实际上,
List
功能独立于它包含的对象类型。因此,要创建自己的
列表
,请编写以下代码:

         List<MyClass> myList = new List<MyClass>();

有一个方法有两个泛型类型T和V,您可以在调用该方法时指定它们(或者由编译器推断)。在这里,声明中的
明确指出了此方法功能。

是一个很好的使用示例。该声明与本文档底部的示例非常相似。一种解读可能是,“给定一个名为
entityClass
T类型的类文本和一个
dbObject
,方法
fromDBObject()
返回类型为T的对象。在这种情况下,符号T代表
对象所代表的类型。

有很多通用教程。请阅读这些教程。不,泛型不仅仅用于集合。在fromDBObject方法的返回部分,有什么区别在和之间?如何理解?指定要为此声明为未知类型指定的名称。T是函数的返回类型。它可能是:
List SomeFunction(T参数){return null;}
如果我通过将第一个参数传递为String.class来调用此方法,那么我们可以将返回部分视为String,但这似乎很奇怪,我们希望返回为String,其中返回部分应仅声明为T,不是吗?如果传递String.class,则T将被推断为String,因此结果类型应为String.I这只是一种指定函数是泛型的方法-它没有其他含义。类似于
类的东西呢?V的含义是什么?你能确切解释一下查询的意思吗?方法在集合映射中返回类型为Query的对象,其中key是类型T,value是类型V吗?它返回一个查询。它没有任何内容与集合有关。仅表示该方法有两个泛型类型:T和V。其中一个出现在查询和类中,另一个作为参数类型(V值)出现。教程链接是否已断开?
         <T,V> Query<T> find(Class<T> clazz, String property, V value)