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

网站如何选择服务器网页搜索青骄第二课堂

网站如何选择服务器,网页搜索青骄第二课堂,vs和dw做网站的区别,互联网企业网站上一篇博客《java:类型变量(TypeVariable)解析–获取泛型类(Generic Class)所有的类型变量(TypeVariable)的实际映射类型》中介绍如何如何正确解析泛型类的类型变量(TypeVariable)#xff0c;获取对应的实际类型。 有了类型变量(TypeVariable)–实际类型的映射#xff0c;我们…上一篇博客《java:类型变量(TypeVariable)解析–获取泛型类(Generic Class)所有的类型变量(TypeVariable)的实际映射类型》中介绍如何如何正确解析泛型类的类型变量(TypeVariable)获取对应的实际类型。 有了类型变量(TypeVariable)–实际类型的映射我们就可以基于guava的类型解析工具(com.google.common.reflect.TypeResolver)将一个类型(java.lang.reflect.Type)中所有类型变量的(TypeVariable)替换为实际类型。 以下是实现代码 EnhancedTypeResolver.java import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; import com.google.common.base.MoreObjects; import com.google.common.reflect.TypeResolver;import static com.google.common.base.Preconditions.checkNotNull;/*** 基于{link TypeResolver}实现的类型变量({link TypeVariable})解析工具br*/ public class EnhancedTypeResolver {private final TypeResolver typeResolver;/*** 构造方法* param typeVariables 类型变量对应实际类型的映射,* 参见 {link net.gdface.utils.ReflectionUtils#getNormalizedTypeVariables(Class, boolean)}*/public EnhancedTypeResolver(MapTypeVariable?, Type typeVariables) {typeVariables MoreObjects.firstNonNull(typeVariables, Collections.TypeVariable?, TypeemptyMap());typeResolver createTypeResolver(typeVariables);}public EnhancedTypeResolver() {this(Collections.TypeVariable?, TypeemptyMap());}/*** 根据提供的类型变量-实际类型映射创建{link TypeResolver}* param typeVariables*/public static TypeResolver createTypeResolver(MapTypeVariable?, Type typeVariables) {TypeResolver _typeResolver new TypeResolver();for(EntryTypeVariable?, Type entry:MoreObjects.firstNonNull(typeVariables, Collections.TypeVariable?, TypeemptyMap()).entrySet()) {_typeResolver _typeResolver.where(entry.getKey(), entry.getValue());}return _typeResolver;}/*** 解析类型中的所有类型变量并返回已解析类型变量的对应类型。* param type* see TypeResolver#resolveType(Type)*/public Type resolveType(Type type) {return typeResolver.resolveType(type);}/*** 解析将数组中的类型中的所有类型变量并返回已解析类型变量的对应类型数组。* param types* see TypeResolver#resolveType(Type)*/public Type[] resolveTypes(Type[] types) {Type[] resolved checkNotNull(types,types is null).clone();for(int i0;iresolved.length;i) {resolved[i] resolveType(resolved[i]);}return resolved;} } 注 TypeResolver.where(MapTypeVariableKey, ? extends Type)方法不是公开的所以上面的代码的createTypeResolver方法实现只能调用 TypeResolver.where(Type, Type),将Map中的键值一个一个添加到TypeResolver对象 EnhancedTypeResolver的构造方法要求是类型变量(TypeVariable)–实际类型的映射(Map)。 有了这个映射 就可以调用resolveType(Type)或resolveTypes(Type[])将一个类型中的类型变量(TypeVariable)替换中实际类型。 示例代码 MapTypeVariable?, Type typeVariables getNormalizedTypeVariables(ServiceC.class, false); EnhancedTypeResolver typeResolver new EnhancedTypeResolver(typeVariables); for( Method method:ServiceC.class.getMethods()) {/** 解析方法的泛型参数 */Type[] resolved typeResolver.resolveTypes(method.getGenericParameterTypes()); }输出结果 USER_TServiceA ServiceA.fox(ListUSER_T,PAPER_TServiceA) └─BaseUserBean ServiceA.fox(List,BasePaperBean) └─BaseUserBean ServiceA.fox(List,PaperBean) 完整代码 以上完整实现代码参见码云仓库 https://gitee.com/l0km/common-java/blob/master/common-base2/src/main/java/net/gdface/reflection/generics/EnhancedTypeResolver.java 完整测试代码参见码云仓库 https://gitee.com/l0km/common-java/blob/master/common-base2/src/test/java/net/gdface/utils/TypeVariableTest.java
http://www.w-s-a.com/news/892944/

相关文章:

  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站
  • 备案网站忘记密码乐装网
  • 电商扶贫网站建设淄博网站建设小程序
  • 网站群建设代理丰城网站建设公司
  • 青岛网站建设服务器wordpress迁移跳转原网站
  • 泰安网站建设哪里有公司如何注册网站
  • 做网站开专票税钱是多少个点上海市有哪些公司
  • 寿县有做网站开发的吗宁波网站建设方式
  • 网站建设和网站推广服务器怎么发布网站
  • 比较好的摄影网站雅安市政建设公司网站
  • 网站与微信区别wordpress 站内信
  • 宁夏网站开发设计说明书源码下载脚本之家
  • 邱县做网站百度搜索排名机制
  • 运城个人网站建设智慧团建系统官方网站登录
  • 公司营业执照可以做几个网站一家专门做母婴的网站
  • 网站建设商标属于哪个类别搜狗seo快速排名公司
  • 织梦做商城网站企业网络建站
  • 网站后期维护都有什么wordpress首页加图片
  • 展会网站怎么做网页设计与制作教程版徐洪亮课后答案
  • 石景山网站建设设计公司建设网站怎么建立服务器
  • 本地生活服务平台app网站关键词优化原理
  • 建网站的公司叫什么重庆论坛建站模板
  • 湖北网站制作公司银川网站建设哪家不错
  • 网站后台演示地址服装网站建设公司推荐