0

我正在使用 Robolectric,在Robolectric 类中有一个静态方法:

public static <P, R> P shadowOf_(R instance) {
    return (P) ShadowWrangler.getInstance().shadowOf(instance);
}

我有很长一段时间的 C# 泛型背景,所以我可能会错误地思考这个问题。我的第一直觉是这样利用它:

Robolectric.shadowOf_<MyShadow>(myInstance).foo(); 

但是,这不会编译(另外,对我和我的 C# 泛型背景来说,它看起来不正确)。

我怎样才能使用这种方法?

该方法的来源位于此处。

4

2 回答 2

2

我相信你需要:

Robolectric.<MyShadow,X>shadowOf_(myInstance).foo(); 

X无论类型是什么myInstance

于 2011-06-07T22:24:03.447 回答
0

编译器无法推断 P 是什么。假设这里的P应该是A,你可以

A a = Robolectric.shadowOf_(myInstance); // compiler can infer P=A here
a.foo();
于 2011-06-07T22:44:18.070 回答