2011-06-07 72 views
0

我與Robolectric工作,並在Robolectric class有一個靜態方法:Android的Java靜態通用呼叫

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

我來自一個很長一段時間,C#泛型的背景,所以我可以思考的這種不正確。我的第一反應是利用這個如此:

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

然而,這並不編譯(加,對我和我的C#泛型的背景,它不看的權利)。

我該如何使用這種方法?

Source of the method is located here.

+0

你能提供編譯錯誤嗎? – WarrenFaith 2011-06-07 22:12:38

+0

什麼是編譯器消息? – 2011-06-07 22:13:12

+0

「不是一個聲明」 – 2011-06-07 22:15:10

回答

2

我相信你需要:

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

其中X是什麼的myInstance的類型。

0

編譯器無法推斷出P是什麼。假設P應該在這裏,你可以

A a = Robolectric.shadowOf_(myInstance); // compiler can infer P=A here 
a.foo();