Android Java静态通用调用
我正在使用Robolectric,其中有一种静态方法:Android Java静态通用调用,java,android,generics,robolectric,Java,Android,Generics,Robolectric,我正在使用Robolectric,其中有一种静态方法: public static <P, R> P shadowOf_(R instance) { return (P) ShadowWrangler.getInstance().shadowOf(instance); } publicstaticshadowp\ur(实例){ 返回(P)ShadowWrangler.getInstance().shadowOf(实例); } 我有很长一段时间的C#泛型背景,所以我可能会错
public static <P, R> P shadowOf_(R instance) {
return (P) ShadowWrangler.getInstance().shadowOf(instance);
}
publicstaticshadowp\ur(实例){
返回(P)ShadowWrangler.getInstance().shadowOf(实例);
}
我有很长一段时间的C#泛型背景,所以我可能会错误地思考这个问题。我的第一反应是这样利用这一点:
Robolectric.shadowOf_<MyShadow>(myInstance).foo();
Robolectric.shadowOf_uz(myInstance.foo();
然而,这并没有编译(另外,对于我和我的C#泛型背景来说,它看起来并不正确)
我如何使用这个方法
我相信您需要:
Robolectric.<MyShadow,X>shadowOf_(myInstance).foo();
Robolectric.shadowOf_uz(myInstance.foo();
其中
X
是myInstance
的任何类型。编译器无法推断p是什么。假设这里P应该是A,你可以
A a = Robolectric.shadowOf_(myInstance); // compiler can infer P=A here
a.foo();
您能提供编译错误吗?编译器消息是什么?