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)
上一篇 2025年8月19日 下午1:01
下一篇 2025年8月19日 下午1:22


相关推荐

  • Python源代码_源代码版权和软件著作权

    Python源代码_源代码版权和软件著作权一个小需求:在申请软件著作权的时候,需要提交一页50行,总共60页的源代码。但是设计的项目保存在多级的目录下,不想一个一个复制,遂通过python,os模块获得全部目录的文件,re正则化过滤无效源代码,然后基于docx模块写入到word中。涉及的模块有os,docx,re同学们要自行下载上述的模块,使用pipinstallXXX就可以的。。python大法好呀那我们就分为2个大的…

    2026年2月15日
    3
  • p2p网络传输协议

    p2p网络传输协议P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文PointtoPoint(点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较…

    2022年7月16日
    31
  • 军师旅团营连排班各有多少人

    军师旅团营连排班各有多少人一个 bai 军有 50000 到 70000 人 一个 du 师有 12000 到 zhi15000 人 一个旅有 6000 到 8000 人 一个团有 1200 到 1500 人 一个营有 500 到 700 人 一个连有 dao105 到 120 人 一个排有 36 人 一个班有 12 人 一个小队有 50 到 70 人 一个中队有 500 人 一个大队有 1200 人

    2026年3月26日
    3
  • Ubuntu 24.04.4 LTS安装千问大模型,应该选择哪个版本?

    Ubuntu 24.04.4 LTS安装千问大模型,应该选择哪个版本?

    2026年3月15日
    2
  • 苹果x充电慢是什么原因_苹果手机充不进去电?什么原因?怎么解决?

    突然发现苹果手机充不进电了?难道是手机坏了?还是其它方面的原因呢?今天蜜罐蚁小编给大家介绍一个有关苹果手机使用方面生活小妙招。下面是几种常见苹果手机充不进电原因总结。1、充电线损坏不知道是不是有一些朋友像小编一样,家里的苹果手机原装充电线早就找不到了,从网上买的数据线,结果这种网上买的数据线不耐用,用了几次发现就不好用了,怎么充电都没反应。这种情况就只能更换一根新的数据线了。2、充电器损坏其实这个…

    2022年4月7日
    330
  • TOTALCMD 小计

    TOTALCMD 小计1 创建快捷方式 ctrl shift f5 管理员在 2009 年 8 月 13 日编辑了该文章文章 window bd share config common bdSns

    2026年3月18日
    2

发表回复

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

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