网小鱼Java的bug小集锦0008

这个bug异常报错是出现在学习反射的过程中出现的,"犯罪现场"截图如下
在这里插入图片描述报错信息:
Type mismatch :cannot convert from Class<?>[] to Parameter[]
报错原因:
对API的学习记忆错误,两个API的功能不同,作用也不一样,在使用的时候要注意区分.
解决方案:
选择合适的API方法
在这里插入图片描述进入两种API文档中看一下具体的用法差异

getTypeParameters

public TypeVariable<Class<T>>[]get TypeParameters()

按声明顺序返回TypeVariable对象的一个数组,这些对象表示用此GenericDeclaration对象所表示的常规声明来声明的类型变量.如果底层常规声明不声明类型变量,则返回长度为0的数组.

指定者:
	接口 GenericDeclaration中的getTypeParameters
返回:
	表示该常规所声明的类型变量的TypeVariable对象的一个商户组
抛出:
	GenericSignatureFormatError - 如果声明常规的签名不符合Java Virtual Machine Sepcification,3rd edition 规定的格式
以下版本从java1.5开始

getParameterTypes的源码在Constructor的源码的211-217行

/**
     * {@inheritDoc}
     */
    @Override
    public Class<?>[] getParameterTypes() {
    
    
        return parameterTypes.clone();
    }

猜你喜欢

转载自blog.csdn.net/m0_55284524/article/details/115134965
今日推荐