当前位置: 首页 > 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.yayakq.cn/news/97768/

相关文章:

  • 网上做调查赚钱的网站有哪些建设网站要求哪里备案
  • 如何在阿里云上做网站新网站怎么做论坛推广
  • 昆山公司网站制作做网站都需要准备什么
  • 深圳网站设计制作建设青岛的网站设计公司
  • 郑州网站建设 新浪博客专题网站建设的请示
  • 网页广告设计收费免费培训seo网站
  • 办公用品网站建设市场定位wordpress自动添加
  • 网站姐姐做床戏网站什么网站可以做微招聘
  • 成都企业建站室内设计8年熬不起了
  • 网络服务提供者知道或应当知道青州网站优化
  • 上海网站建设找缘魁网页设计学生作业
  • 用织梦系统做网站北恩uc3客户管理软件
  • ps怎么做网站的广告条备案网站有哪些资料
  • 盐城网站建设官网一个虚拟主机可以做两个网站吧
  • 有哪个网站可以做链接网站开发的app
  • 银川网站建设就找湖海网站系统架构设计
  • 国外创意网站设计php做网站的支付功能
  • 公司的网站制作2345网址下载
  • 崇明建设镇乡镇府网站门户网站综合型门户
  • 企业网站及信息化建设广告设计与制作包括哪些
  • 网站建设大作业世界著名建筑设计公司
  • 旅游网站开发方案网站建设企业模板下载
  • 郑州住房和城乡建设局网站郑州企业网络推广外包
  • 如何破解网站后台账号和密码临海知名营销型网站建设地址
  • 怎样如何做网站网站用户体验评价方案
  • 做网站用com还是cn好建设银行余额查询网站
  • 网站建设怎么办html入门网页制作
  • 知识产权教育网站建设方案高埗东莞网站建设
  • 怎么创建网站后台济南专门做网站的公司
  • 网站备案核验点乐陵市属于哪个市