我想声明一个由getParameterTypes()返回的类型的变量,但是出现错误。对于getTypeParameters(),我也遇到同样的错误“无法解析为类型”。
如何才能做到这一点?

  Class<?> lcSeqHolder = null;
  TypeVariable<Method> lcTypeHolder = null;

  // Use reflection to find the take method
  Method[] lcMethods = mcSpecificReader.getDeclaredMethods();
  for (Method lcMethod : lcMethods)
  {
     System.out.println(lcMethod.getName());
     if (lcMethod.getName().equals(TAKE_METHOD_NAME))
     {
        lcSeqHolder = lcMethod.getParameterTypes()[SEQUENCE_HOLDER_ARG_INDEX];
        lcTypeHolder = lcMethod.getTypeParameters()[SEQUENCE_HOLDER_ARG_INDEX];

        lcSeqHolder  var1;  // <-- lcSeqHolder cannot be resolved to a type
        lcTypeHolder  var2; // <-- lcTypeHolder cannot be resolved to a type
     }
  }

最佳答案

您是否需要lcSeqHolder类型的对象?试试这个:

Object var1 = lcSeqHolder.newInstance();


仅在由lcSeqHolder定义的类具有默认构造函数的情况下,它将起作用。

09-27 01:40