java - 了解 Java 中的泛型方法

标签 java android generics

我试图理解我在现有 Android 应用程序中阅读的一种方法。该方法的声明如下所示:

protected <V, T extends Result> void postObject(final V input, final T result, final ConnectionTarget endpoint, final boolean restart, final int id, final LoaderProvider provider, final ServiceCallbacks<T> callbacks) {

我刚刚阅读了有关泛型的内容,所以我或多或少地了解这里发生了什么,但并不完全了解。因此我有两个问题:

  1. 应该input是一种类型(即类),还是应该只是任何类型的对象?
  2. <V, T extends Result> 是什么意思意思?据我所知,那个地方应该总是描述方法的返回类型,但它已经说了 void在它的后面,加上,它同时表示 VT .

谁能举例说明如何调用这个方法?

最佳答案

我会把它分成更小的部分,这样更容易理解。 在部分中:

protected <V, T extends Result> void

<V, T extends Result>是一个可选部分(通常不存在),用于指定泛型类型(或未知对象类型)。这是由 < 指定的和 >并且任何逗号分隔值都是一个单独的对象(对象“T”必须扩展结果)。

这意味着稍后在方法调用中:

... postObject(final V input,...

该输入是对象类型 V,这意味着它可以是您想要的任何对象。

编辑

调用此方法的基本示例是:

//Now post it
postObject("my input object", null /*Your result class*/, null /*your endpoint*/, true, 0, null /*your loaderProvider*/, null /*your callbacks*/);

关于java - 了解 Java 中的泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20250722/

相关文章:

java - 列索引无效,使用 PreparedStatement 更新

java - 非常小的 Double 值相加 (Java)

android - Android:小部件在设备重新启动时崩溃

android - Android SDK 支持库出现问题

java - 更改colors.xml中颜色的Android文本输入布局

java - Java 的类型参数通配符到底是什么意思? Foo 和 Foo<?> 之间的真正区别是什么?

java - 为什么未经检查的警告不会被抑制

java - 渲染 swagger 服务描述的路径时如何考虑 servlet 路径映射

android - Kotlin 泛型边界

generics - 如何使用 GHC.Generics(或其他类似框架)构造通用 Functor 实例?