当前位置: 首页 > wzjs >正文

php做的网站怎么入侵昆山建设网站公司

php做的网站怎么入侵,昆山建设网站公司,wordpress文章怎么生成海报,vue大型网站开发吗在 Java 的泛型系统中,ParameterizedType 和 TypeVariable 是两个不同的类型表示,它们都属于 java.lang.reflect.Type 接口的子接口。两者都在反射(Reflection)中用于描述泛型信息,但用途和含义不同。 🌟 一…

在 Java 的泛型系统中,ParameterizedTypeTypeVariable 是两个不同的类型表示,它们都属于 java.lang.reflect.Type 接口的子接口。两者都在反射(Reflection)中用于描述泛型信息,但用途和含义不同。


🌟 一、概念区别

类型名称所属包含义
ParameterizedTypejava.lang.reflect表示一个参数化类型,即带有泛型参数的类型,例如 List<String>Map<Integer, String> 等。
TypeVariablejava.lang.reflect表示类型变量,也就是泛型中的占位符,如 TKV 等。

🧩 二、具体解释

1. ParameterizedType

  • 定义:
    表示一个已经被参数化的泛型类型。

  • 常见例子:

    • List<String>
    • Map<Integer, User>
    • Optional<T>
  • 方法:

    Type[] getActualTypeArguments(); // 获取实际类型参数,如 String、Integer
    Type getRawType();                // 获取原始类型,如 List、Map
    Type getOwnerType();              // 如果是内部类,返回外部类类型
    
  • 使用场景:
    在反射中获取字段或方法的返回值类型时,如果它是参数化类型,就会返回 ParameterizedType

示例:
Field field = MyClass.class.getDeclaredField("list");
Type type = field.getGenericType();if (type instanceof ParameterizedType pType) {Type rawType = pType.getRawType(); // java.util.ListType[] typeArgs = pType.getActualTypeArguments(); // [class java.lang.String]
}

2. TypeVariable

  • 定义:
    表示泛型中的类型变量(通常用 T、E、K、V 表示),这些变量会在编译后被擦除,但在反射中可以获取其信息。

  • 常见例子:

    • 泛型类定义中的 <T>
    • 方法签名中的 <K, V> Map<K,V> getMap()
  • 方法:

    String getName();                  // 获取变量名,如 "T"
    Type[] getBounds();                // 获取上界,默认是 Object
    GenericDeclaration getGenericDeclaration(); // 返回声明该变量的类或方法
    
  • 使用场景:
    当你查看泛型类或方法的类型参数时,会得到 TypeVariable

示例:
public class Box<T> {private T value;
}Field field = Box.class.getDeclaredField("value");
Type type = field.getGenericType();if (type instanceof TypeVariable<?> tv) {System.out.println(tv.getName());      // TSystem.out.println(Arrays.toString(tv.getBounds())); // [class java.lang.Object]
}

🔍 三、总结对比表

特性ParameterizedTypeTypeVariable
表示类型已经被参数化的类型泛型类型变量(未指定具体类型)
常见形式List<String>Map<K, V>TEK
是否有实际类型参数✅ 有 (getActualTypeArguments)❌ 没有
是否代表泛型变量
使用场景获取具体泛型类型信息获取泛型变量本身信息
是否能直接用于创建对象❌(运行时被擦除)❌(只是一个变量)

💡 四、关系说明

在泛型类型中,TypeVariable 是泛型参数的“名字”,而 ParameterizedType 是这个“名字”被替换为具体类型的实例。

比如:

class Box<T> {T content;
}
  • content 字段的泛型类型是 T,是一个 TypeVariable
  • 如果你在某个地方这样使用:
    Box<String> box = new Box<>();
    
    那么这里的 Box<String> 就是一个 ParameterizedType,其中 String 是对 T 的具体化

✅ 五、补充:其他相关类型

除了这两个类型外,Java 反射中还有几个重要的类型接口:

类型说明
Class<T>表示具体的类或基本类型
WildcardType表示通配符类型,如 ? extends Number? super String
GenericArrayType表示泛型数组,如 T[]

在处理 JSON 反序列化(如 Gson、Jackson)、动态代理、框架设计等需要保留泛型信息的场景,理解这些类型是非常关键的。

http://www.dtcms.com/wzjs/581781.html

相关文章:

  • 烟台网站建设维护丹灶网站设计
  • 制作一个网站的全过程做商城网站
  • 网站开发工具与环境网站开发 方案概要
  • 聊城有什么网站制作公司深圳龙华医院
  • 家居企业网站建设流程保山企业网站建设
  • 做网站成功案例培训心得体会300字
  • 重庆万州网站建设报价如何做网站进行推广
  • 忻州做网站中国企业网官网登录入口
  • 网站建设技术外包平台设计思路怎么写
  • 一站式网站建设架构一站式媒体发稿平台
  • 盐城哪家专业做网站商城服务是怎么赚钱
  • 宁波网站建设设计报告简述常用的网站开发软件
  • 整网站代码 带数据 免费 下载返利淘网站怎么做
  • html5 自适应网站简书 用wordpress
  • 网站的开发公司倒闭对网站使用公众号开发用什么工具
  • 女装市场网站建设费用评估桂林网站建设培训班
  • 网站架构图图怎么制作营销网站
  • 驾校网站模版vs做的网站图片显示不了
  • 贵阳网站建设技术托管理解电子商务网站建设与管理
  • 专业网站建设公司在线咨询推荐网站建设收费标准
  • 怎做不下网站刷枪wordpress插件怎么打开
  • 做网站的框架组合浙江常升建设有限公司网站
  • 浙江网站建设实验心得找钟点工做的网站
  • 一个虚拟主机可以做几个网站贵州网站备案
  • 做网站的时候卖过假货而出过事校园网站怎么做
  • 网站建设开票分类编码网站文件解压
  • 上海网站推广费用广州网站设计权威乐云践新
  • 进行网站建设的上市公司石家庄建设网
  • 虚拟网站官网小程序制作公司开发
  • 怎么做网站和注册域名上海网站开发有限公司