Android Java 静态泛型调用

发布于 2024-11-14 18:46:39 字数 707 浏览 1 评论 0原文

我正在与 Robolectric 合作,并在 Robolectric 类 有一个静态方法:

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

我有很长一段时间的 C# 泛型背景,所以我可能错误地想到了这一点。我的第一直觉是这样利用它:

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

然而,这不能编译(另外,对于我和我的 C# 泛型背景来说,它看起来不正确)。

我该如何使用这个方法?

该方法的来源是位于此处。

I'm working with Robolectric, and in the Robolectric class there is a static method:

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

I've come from a long time C# Generics background so I could be thinking of this incorrectly. My first instinct was to utilize this as such:

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

However, this does not compile (plus, to me and my C# generics background, it doesnt look right).

How can I use this method?

Source of the method is located here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岛徒 2024-11-21 18:46:39

我相信您需要:

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

其中 XmyInstance 的类型。

I believe you need:

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

where X is whatever the type of myInstance is.

三人与歌 2024-11-21 18:46:39

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

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

compiler can't infer what P is. Suppose P should be A here, you can

A a = Robolectric.shadowOf_(myInstance); // compiler can infer P=A here
a.foo();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文