我试图理解我在现有 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) {
我刚刚阅读了有关泛型的内容,所以我或多或少地了解这里发生了什么,但并不完全了解。因此我有两个问题:
- 应该
input
是一种类型(即类),还是应该只是任何类型的对象? <V, T extends Result>
是什么意思意思?据我所知,那个地方应该总是描述方法的返回类型,但它已经说了void
在它的后面,加上,它同时表示V
和T
.
谁能举例说明如何调用这个方法?
最佳答案
我会把它分成更小的部分,这样更容易理解。 在部分中:
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/