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

网站复制按钮怎么做优化网站怎么做

网站复制按钮怎么做,优化网站怎么做,河南省汝州市文明建设网站,注册安全工程师考哪四门上一篇博客《java:类型变量(TypeVariable)解析–获取泛型类(Generic Class)所有的类型变量(TypeVariable)的实际映射类型》中介绍如何如何正确解析泛型类的类型变量(TypeVariable),获取对应的实际类型。 有了类型变量(TypeVariable)–实际类型的映射,我们…

上一篇博客《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(Map<TypeVariable<?>, Type> typeVariables) {typeVariables = MoreObjects.firstNonNull(typeVariables, Collections.<TypeVariable<?>, Type>emptyMap());typeResolver = createTypeResolver(typeVariables);}public EnhancedTypeResolver() {this(Collections.<TypeVariable<?>, Type>emptyMap());}/*** 根据提供的类型变量-实际类型映射创建{@link TypeResolver}* @param typeVariables*/public static TypeResolver createTypeResolver(Map<TypeVariable<?>, Type> typeVariables) {TypeResolver _typeResolver = new TypeResolver();for(Entry<TypeVariable<?>, Type> entry:MoreObjects.firstNonNull(typeVariables, Collections.<TypeVariable<?>, Type>emptyMap()).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 i=0;i<resolved.length;++i) {resolved[i] = resolveType(resolved[i]);}return resolved;}
}


TypeResolver.where(Map<TypeVariableKey, ? extends Type>)方法不是公开的,所以上面的代码的createTypeResolver方法实现只能调用 TypeResolver.where(Type, Type),将Map中的键值一个一个添加到TypeResolver对象

EnhancedTypeResolver的构造方法要求是类型变量(TypeVariable)–实际类型的映射(Map)。
有了这个映射 ,就可以调用resolveType(Type)resolveTypes(Type[])将一个类型中的类型变量(TypeVariable)替换中实际类型。

示例代码:

Map<TypeVariable<?>, Type> typeVariables = getNormalizedTypeVariables(ServiceC.class, false);
EnhancedTypeResolver typeResolver = new EnhancedTypeResolver(typeVariables);
for( Method method:ServiceC.class.getMethods()) {/** 解析方法的泛型参数 */Type[] resolved = typeResolver.resolveTypes(method.getGenericParameterTypes());
}

输出结果:

USER_T@ServiceA ServiceA.fox(List<USER_T>,PAPER_T@ServiceA)
└─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.hrbkazy.com/news/37458.html

相关文章:

  • 深圳信科网站建设精准推广
  • 嘉兴制作手机网站北京网站维护公司
  • 做绿化生意有什么网站东莞网络营销网络推广系统
  • 做自适应网站公司百度一下你就知道了主页
  • 建筑专业网站建设外贸网站
  • 深圳住房和建设厅网站网络推广专家
  • 网站建设或网站优化排名网站域名查询ip
  • 有名的淘宝客网站西安网络推广营销公司
  • 东莞做微网站建设价格温州seo按天扣费
  • 公司制作网站多少钱免费网站制作软件平台
  • wordpress 律师事务所模板苹果aso优化
  • 营销网站建设模板2024年重启核酸
  • 如何做音乐分享类网站爱站网查询
  • 商城网站页面设计排名检测
  • 宁夏建设学院官方网站百度做免费推广的步骤
  • 今网科技网站建设谷歌浏览器手机版免费官方下载
  • 太原做网站的2022新闻热点事件简短30条
  • 网站建设 证书东莞网络推广
  • 网站建设是虚拟行业吗网络营销策略的制定
  • 做网站赚钱流程百度网站权重查询
  • 长春网长春网站建设站建设今天国内新闻10条
  • 做外贸不能访问国外网站怎么办网页制作成品
  • 开发公司资质质量体系网站关键词优化公司哪家好
  • 驻马店做网站的公司电商运营助理
  • 周口做网站优化如何快速提升自己
  • 徐州网站排名系统怎么样建立自己的网站
  • 中国移动生活app下载安装seo优化sem推广
  • wordpress网站制作教程视频百度关键词快速排名
  • 杭州做网站nuoweb收录情况
  • wordpress 协议关键词排名优化技巧