JAVA中parameterized,java使用ParameterizedType实现泛型

JAVA中parameterized,java使用ParameterizedType实现泛型1 过程 1 测试属性类型 2 打印 type 与 generictype 的区别 3 测试参数类型 4 测试返回值类型 2 实例 publicclassC privateMapob publicvoidte Mapmap Stringstring publicMaptes returnnull 测试属性类型 throws

1f99d017e047d4c102d59c5f9b8fb28e.png

1、过程

(1)测试属性类型

(2)打印type与generic type的区别

(3)测试参数类型

(4)测试返回值类型

2、实例public class Client {

private Map objectMap;

public void test(Map map, String string) {

}

public Map test() {

return null;

}

/

* 测试属性类型

*

* @throws NoSuchFieldException

*/

@Test

public void testFieldType() throws NoSuchFieldException {

Field field = Client.class.getDeclaredField(“objectMap”);

Type gType = field.getGenericType();

// 打印type与generic type的区别

System.out.println(field.getType());

System.out.println(gType);

System.out.println(“”);

if (gType instanceof ParameterizedType) {

ParameterizedType pType = (ParameterizedType) gType;

Type[] types = pType.getActualTypeArguments();

for (Type type : types) {

System.out.println(type.toString());

}

}

}

/

* 测试参数类型

*

* @throws NoSuchMethodException

*/

@Test

public void testParamType() throws NoSuchMethodException {

Method testMethod = Client.class.getMethod(“test”, Map.class, String.class);

Type[] parameterTypes = testMethod.getGenericParameterTypes();

for (Type type : parameterTypes) {

System.out.println(“type -> ” + type);

if (type instanceof ParameterizedType) {

Type[] actualTypes = ((ParameterizedType) type).getActualTypeArguments();

for (Type actualType : actualTypes) {

System.out.println(“\tactual type -> ” + actualType);

}

}

}

}

/

* 测试返回值类型

*

* @throws NoSuchMethodException

*/

@Test

public void testReturnType() throws NoSuchMethodException {

Method testMethod = Client.class.getMethod(“test”);

Type returnType = testMethod.getGenericReturnType();

System.out.println(“return type -> ” + returnType);

if (returnType instanceof ParameterizedType) {

Type[] actualTypes = ((ParameterizedType) returnType).getActualTypeArguments();

for (Type actualType : actualTypes) {

System.out.println(“\tactual type -> ” + actualType);

}

}

}

}

以上就是java使用ParameterizedType实现泛型的方法,希望能对大家有所帮助。更多Java学习指路:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233078.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 2021.11激活[最新免费获取]

    (pycharm 2021.11激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlCE…

    2022年3月29日
    51
  • 大公司里怎样开发和部署前端代码[通俗易懂]

    大公司里怎样开发和部署前端代码[通俗易懂]这是一个非常有趣的非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中。在我的印象中,facebook是这个领域的鼻祖,有兴趣、有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化。接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完。原文https://github.com/fouber/blog

    2022年8月31日
    3
  • pycharm双击打不开,没有反应,下列方法亲测有用!

    pycharm双击打不开,没有反应,下列方法亲测有用!关于这个问题,刚好我朋友安装的pycharm出现了同样地问题,激活成功教程安装一段时间后就突然打不开了,网上有许多的解决办法,我都试了一遍还是无果,后来自己发现了问题所在,首先给大家科普一下网上的方法,再放上我的,请大家耐心读完。亲测有效!!!第一种:1.打开C:\Windows\System32;以管理员身份运行cmd.exe;2.在打开的cmd窗口中,输入netshwinsockreset,按回车键;3.重启电脑;4.重启后,双击pycharm图标就能打开了!第二种:在Pycha

    2022年8月25日
    6
  • Rectified Linear Unit (ReLU)

    Rectified Linear Unit (ReLU)TheRectifiedLinearUnit(ReLU)computesthefunctionf(x)=max(0,x)f(x)=max(0,x),whichissimplythresholdedatzero.ThereareseveralprosandconstousingtheReLUs:(Pros)Comparedtosigmoid/tan

    2025年7月27日
    2
  • mysql 各个版本的驱动 jar 包

    mysql 各个版本的驱动 jar 包http://central.maven.org/maven2/mysql/mysql-connector-java/

    2022年5月21日
    40
  • [数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念「建议收藏」

    [数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念「建议收藏」ODS是什么?ODS全称是OperationalDataStore,操作数据存储.“面向主题的”,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如去噪(例如有一条数据中人的年龄是300岁,这种属于异常数据,就需要提前做一些处理)、去重(例如在个人资料表中,同一ID却有两条重复

    2022年4月19日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号