首页 > 编程知识 正文

typereference 泛型传递,fastjson typereference

时间:2023-05-06 04:44:59 阅读:146005 作者:1333

原文链接: https://muyig.github.io/blog/2020/01/10/type reference/stringuserstring=' [ {serid _ ' 3365284; 1365292; listuserinfouserinfolist=JSON.parse object (userstring,input.getClass ); jva.lang.classcastexception : com.Alibaba.fast JSON.jsonobjectcannotbecasttocom.vdian.Dagon.core.user.user @suppresswarnings(unchecked ) ) publicstatictparseobject ) stringtext,TypeReferenceT type,feature . features { retures } features} type.type,ParserConfig.global,DEFAULT_PARSER_FEATURE,features; } new runnable ((@ overridepublicvoidrun ) ) { //. }}; newabstractliststring ((@ overridepublicintsize ) ) { return 0; } @ overridepublicstringget (intindex ) { return null; }; new ArrayListString ()//父类不是抽象的,因此不需要实现方法();当然,您可以重新编写它) }; publicclasstypereferencet { protectedfinaltypetype;/* * * constructsanewtypeliteral.derivesrepresentedclassfromtype * parameter.* * plientscreateanemptyanonymousssubclass.* parameterintheanonymousclass ' stypehierarchysowecanreconstitude atruntimedespiteerasure.*/protectedtypereference {/1 .当前由于采用了创建匿名子类的方式,因此这里获取的是typereference的类型定义。 Type superClass=getClass ().getGenericSuperclass ); //2 .用力转动kkd xh,获取类属参数数组。

type type=(参数化类型) superClass ).getActualTypeArguments ) [0]; //省略缓存逻辑this.type=cachedType; //其他方法} publicclassreflectiontest { staticclasssubarraylist1extendsarrayliste } static class谨慎桃ExtendsArrayliststring{} c 参数化类型参数化类型化类型化类型化类型=(参数化类型) super类; system.out.println (super class : ) parameterizedtype.gettypename ); } publicstaticvoidmain (stringyjfdxyargs ) sub ArrayList1stringsubarraylist1=newsubarraylist1); 打印super class (sub ArrayList1. getclass (); 谨慎的水蜜桃subArrayList2=new谨慎的水蜜桃(); 打印super class (sub ArrayList2. getclass (); print super class (newarrayliststring ({ }.getclass ) ); } super class 3360 Java.util.arraylistesuperclass 3360 Java.util.ArrayList Java.lang.string super class 3360 Java.util.laray 未找到项链 $1. class : signature : # 13//ljava/util/ArrayList ljava/lang/string; reflection test$ sub ArrayList1. class : signature : # 16//e : ljava/lang/object; Ljava/util/ArrayListTE; ReflectionTest$谨慎的水蜜桃. class : signature : # 14//ljava/util/ArrayList ljava/lang/string; publicclassreflectiontest { classaxdqtimplementscallablestring,comparable integer { @ overridepublicstringcall () } returnnuguguguguguguggcal }私有状态语音打印机接口(class? c ) typeyjfdxytypes=c.getgenericinterfaces (; for (类型类型:类型)参数化类型参数化参数化类型参数化类型=)参数化类型; system.out.println (参数化类型. get typename () ); } publicstaticvoidmain (stringyjfdxyargs )打印接口) axdQt.class; } Java.util.concurrent.callable Java.lang.string Java.lang.comparable Java.lang.integerrreflectiontest $ axparabable ; ljava/lang/comparable ljava/lang/integer; publicclassbasegenerict {私有数据; 公共t get data () {返回数据; }公共语音设置(tdata ) { this.data=data; }publicbasegeneric(tdata ) { this.data=data; } publicbasegeneric ({ } publicstaticvoidmain (stringyjfdxyargs ) { new BaseGenericString ) }; } base generic.class signature : # 31///t : ljava/lang/object; Ljava/lang/Object; base generic $1. class signature : # 13//lcom/sunshine vvv/thinkinginjava/generics/basegenericljava/lang/stri

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。