- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 official Guava's TypeToken
wiki ,有下面的例子:
Invokable<List<String>, ?> invokable = new TypeToken<List<String>>() {}.method(getMethod);
invokable.getReturnType(); // String.class
如何设置getMethod
?
我尝试了以下示例:
第一次尝试:
List<String> list = new ArrayList<String>();
Class[] arg = { int.class };
Method getMethod = list.getClass().getMethod("get", arg);
Invokable<List<String>, ?> invokable = new TypeToken<List<String>>() {}.method(getMethod);
System.out.println(invokable.getReturnType());
它崩溃并显示以下消息:
Exception in thread "main" java.lang.IllegalArgumentException: public java.lang.Object java.util.ArrayList.get(int) not declared by java.util.List<java.lang.String>
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
at com.google.common.reflect.TypeToken.method(TypeToken.java:495)
at tmp.LaunchClass.main(LaunchClass.java:28)
第二次尝试(虽然有点不同):
List<String> list = new ArrayList<String>();
Class[] arg = { int.class };
Method getMethod = list.getClass().getMethod("get", arg);
// changed here
Invokable invokable = TypeToken.of(list.getClass()).method(getMethod);
System.out.println(invokable.getReturnType());
不会崩溃,但不会返回预期结果。返回E
。预期结果:String.class
(如官方 wiki 中所示)。
最佳答案
您正在尝试从 ArrayList
获取方法 get
。您应该从 List
获取它。
Class<?> clazz = List.class;
Method getMethod = clazz.getMethod("get", int.class);
TypeToken#method(Method)
的 javadoc州
Returns the
Invokable
formethod
, which must be a member ofT
.
其中 T
是在 TypeToken
中声明的类型变量。
关于java - 可调用.getReturnType() : cannot reproduce Guava's example from the official wiki,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747244/
我创建了一个 MethodInfo 实例: MethodInfo theMethod = typeof(Reciever).GetMethod("methodName", parameterTypes
我有一个类需要获取方法的返回类型,该类已被其他内容覆盖。 假设我有一个类: public class SuperDuperClass { public Object someMethod();
在我当前的项目中,我有如下建模的类。在某些时候,getReturnTypeForGetId() 类的方法在类 A 和 B 上被调用。使用 A 调用方法会按预期返回 Integer,但 B 会返回 Se
此行抛出根植于 SessionFactoryImpl#getReturnTypes 方法的 NPE: Query q = em.createQuery("DELETE FROM Table t
我想知道是否可以使用java反射方法getReturnType()的返回类型来创建该类型的对象。 我有一个返回字符串的方法,假设我们在运行时不知道这一点,因此我调用 getReturnType() 来
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebMethod.getReturnType()方法的一些代码示例,展示了WebMethod.getR
在 official Guava's TypeToken wiki ,有下面的例子: Invokable, ?> invokable = new TypeToken>() {}.method(getM
我明白了 run: method: foo Return type: class java.lang.Integer Exception in thread "main" java.lang.Inst
我需要使用 EasyMock 测试此代码: if (void.class.equals(method.getReturnType)){ //do something } 我想模拟 method
我是一名优秀的程序员,十分优秀!