美文网首页技术栈
2019-03-20——Java反射 GenericDeclar

2019-03-20——Java反射 GenericDeclar

作者: 烟雨乱平生 | 来源:发表于2019-03-20 00:32 被阅读0次

该接口定义了哪些地方可以定义类型变量(泛型)

继承体系

GenericDeclaration.png

由继承体系可以看出我们定义泛型的类型变量只能在这三个地方——类、构造器和方法。

注意泛型变量的定义和使用是不同的,我们可以在Field上使用泛型变量,但不能在Field上声明泛型变量

该接口只声明了一个方法:

方法 说明
getTypeParameters() 返回实体上声明(定义)的所有的类型变量。
public class Info {
    public static void main(String[] args) {
        Arrays.stream(Info.class.getDeclaredMethods()).forEach(method->{
            if("method".equalsIgnoreCase(method.getName())){
                Parameter[] parameters = method.getParameters();
                System.out.println("获取参数的类型");
                for (Parameter parameter:parameters){
                    System.out.println(parameter.getType());
                }
                System.out.println("获取参数的参数化类型");
                for (Parameter parameter:parameters){
                    System.out.println(parameter.getParameterizedType());
                }
                System.out.println("是否是类型变量");
                for (Parameter parameter:parameters){
                    System.out.println(parameter.getParameterizedType() instanceof TypeVariable);
                }
                System.out.println("是否是参数化类型");
                for (Parameter parameter:parameters){
                    System.out.println(parameter.getParameterizedType() instanceof ParameterizedType);
                }
                TypeVariable<Method>[] variables = method.getTypeParameters();
                System.out.println("类型变量的名称");
                for (TypeVariable variable:variables){
                    System.out.println(variable.getName());
                }
            }
        });
    }

    <M,N> M method(M m,List<N> n){
        return m;
    }

}

输出结果是:

获取参数的类型
class java.lang.Object
interface java.util.List
获取参数的参数化类型
M
java.util.List<N>
是否是类型变量
true
false
是否是参数化类型
false
true
类型变量的名称
M
N

相关文章

  • 2019-03-20——Java反射 GenericDeclar

    该接口定义了哪些地方可以定义类型变量(泛型) 继承体系 由继承体系可以看出我们定义泛型的类型变量只能在这三个地方—...

  • 反射的定义

    DATA(053)2019-03-20反射的定义-作用-Class类实例化 1:反射是Java进行自我管理 类、对...

  • 2019-03-20——Java反射 Executable

    Executable类从字面意思上来理解是可执行的意思,其下由两个子类Method和Constructor。 声明...

  • 2019-03-20——Java反射 AccessibleObj

    它提供了标记反射对象的能力,以抑制在使用时使用默认Java语言访问控制检查,从而能够任意调用被私有化保护的方法、域...

  • 2019-03-20——Java反射 Member

    Member接口用来表示“类”中的一个成员(字段或方法)或构造函数。 Member体系继承结构 声明的方法

  • 博客地址

    java注解-01、java注解-02、Git面试资源java反射-01、java反射-02、java反射-03为...

  • Java反射机制入门

    Java反射机制入门 一、什么是反射 JAVA反射机制(The JAVA reflection mechanism...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • 反射之一

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • 反射之二

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

网友评论

    本文标题:2019-03-20——Java反射 GenericDeclar

    本文链接:https://www.haomeiwen.com/subject/hefamqtx.html