如何将 getMethod() 与原始类型一起使用?

发布于 2024-10-17 15:58:56 字数 251 浏览 1 评论 0原文

这是类:

class Foo {
  public void bar(int a, Object b) {
  }
}

现在我试图从类中“反映”此方法:

Class c = Foo.class;
Class[] types = { ... }; // what should be here?
Method m = c.getMethod("bar", types);

This is the class:

class Foo {
  public void bar(int a, Object b) {
  }
}

Now I'm trying to get "reflect" this method from the class:

Class c = Foo.class;
Class[] types = { ... }; // what should be here?
Method m = c.getMethod("bar", types);

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

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

发布评论

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

评论(2

和影子一齐双人舞 2024-10-24 15:58:56

只有一个int.class

Class[] types = { int.class, Object.class };

另一种选择是 Integer.TYPE

Class[] types = { Integer.TYPE, Object.class };

这同样适用于其他原语。

There's just an int.class.

Class[] types = { int.class, Object.class };

An alternative is Integer.TYPE.

Class[] types = { Integer.TYPE, Object.class };

The same applies on other primitives.

愚人国度 2024-10-24 15:58:56

该方法的参数是原始 short,而不是对象 Short

反射不会找到该方法,因为您指定了一个对象short。 getMethod() 中的参数必须完全匹配。

编辑:
问题改了。最初,问题是找到一种采用单个原始短路的方法。

The parameter of the method is a primitive short not an Object Short.

Reflection will not find the method because you specified an object short. The parameters in getMethod() have to match exactly.

EDIT:
The question was changed. Initially, the question was to find a method that takes a single primitive short.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文