java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
前言
升级了androidStudio和geadle版本
Gradle升级 7.0.4
ext.kotlin_version = '1.5.20'
dependencies {classpath "com.android.tools.build:gradle:7.0.4"classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
Error
反射类型转换失败
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
Caused by: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedTypeat com.app.hybridkt.app.util.log.ALog.getTypeClassFromInterface(ALog.java:1045)at com.app.hybridkt.app.util.log.ALog.access$2700(ALog.java:66)at com.app.hybridkt.app.util.log.ALog$Config.addFormatter(ALog.java:757)at com.app.hybridkt.app.base.application.IApplication.initALog(IApplication.kt:114)at com.app.hybridkt.app.base.application.IApplication.onCreate(IApplication.kt:38)at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1189)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6647)at android.app.ActivityThread.access$1300(ActivityThread.java:240) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1896) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7642) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
重新编译老的项目 报了一个未知错误
解决方法
在强制转化参数化类型
当参数类型可能有多个泛型参数的时候
需要多一层判断是否包含 用来测试一个对象是否为一个类的实例 然后再执行逻辑代码
private static <T> Class getTypeClassFromInterface(final IFormatter<T> callback) {if (callback == null) return null;Type mySuperClass = callback.getClass().getGenericInterfaces()[0];//多加了一层instanceof的判断 if (mySuperClass instanceof ParameterizedType) {Type type = ((ParameterizedType) mySuperClass).getActualTypeArguments()[0];while (type instanceof ParameterizedType) {type = ((ParameterizedType) type).getRawType();}String className = type.toString();if (className.startsWith("class ")) {className = className.substring(6);} else if (className.startsWith("interface ")) {className = className.substring(10);}try {return Class.forName(className);} catch (ClassNotFoundException e) {e.printStackTrace();}}return null;}
总结
人总要保持学习 跟上时代的步伐
更新了android studio
最新版 慢慢学习kotlin
语法
同时也加入了win11
的大军
一切都是美好的开始 可能会舍弃旧时的习惯 但没什么 学会新的就可以了
编码风格 吸血鬼主题
参考博文 Android Studio 一键切换界面风格
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType相关推荐
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer 1.改sql select ...
- ArrayMap java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]
错误堆栈: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]at android. ...
- 在拦截器中获取请求参数,[Ljava.lang.String; cannot be cast to java.lang.String报错
Map<String,Object> parametersmap=invocation.getInvocationContext().getParameters();//获取请求参数 ...
- Java报错:java.math.BigDecimal cannot be cast to java.lang.String
从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...
- “无效数字” ;java.lang.Integer cannot be cast to java.lang.String
今天页面上突然查询不出数据,大致的sql语句是 select xx ,xxx from table a where a.lrmb in ( 6101060033, 61010503300, 61016 ...
- java.lang.Long cannot be cast to java.lang.Integer解决办法
情景: mybatis连接oracle 报错: 测试增的时候,报错 Java.lang.Long cannot be cast to java.lang.Integer:删改没有报错. 排查过程: ...
- [记录]java.math.biginteger cannot be cast to java.lang.long
可以直接使用BigInteger类型进行接收, BigInteger id = (BigInteger)QueryRunner(conn,"SELECT LAST_INSERT_ID&quo ...
- java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法
你好我是辰兮,本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案. 文章目录 一.实战问题 用postman测 ...
- java.math.BigDecimal cannot be cast to java.lang.Integer
问题描述:利用sql语句从数据库里面取出数据后,对取出的数据进行数据转换时,出现了java.math.BigDecimal cannot be cast to java.lang.Integer错误, ...
- mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常 参考文章: (1)mysql连接报java.math.BigIntege ...
最新文章
- 免费!「神策 2021 数据驱动大会」西安大数据技术专场来袭
- Rocchio算法—文本分类
- Unity 下载存档
- [Spark] - HashPartitioner RangePartitioner 区别
- 在Axure中通过全局变量实现两个文本框与中继器联动
- 免费文件分发服务器,文件分发服务器 AWS CloudFront(CDN)使用入门-以S3为例 Lebal:Research...
- Excel表格输入身份证数字就变了 Excel函数公式大全 Excel表格制作
- 74HC595的中文资料
- igbt原理动画演示视频_igbt的结构原理与特性图解
- hdu2825(AC 自动机)
- (愚人节玩笑)历史上最奇怪的圆周率计算法
- 字节和兆字节的换算_什么是兆字节(MB)?
- android category 讲解
- RK3568 Android12 长按power键功能设置
- 带上问题来看:主流技术Java、Python怎么?基本功又该怎么学?(什么是MySQL、Linux、算法?又该怎么用?)
- String Shifting
- ibm java虚拟机_IBM J9 Java虚拟机正式开源,贡献给Eclipse基金会管理
- 初识云计算和DevOps
- 华为机试 HJ21简单密码【java实现】
- adb命令 android 串口_Android adb 串口设备调试方法
热门文章
- 宋智孝那个机器人_陈柏霖机器人竟然冷落宋智孝
- Emacs快捷键 转自:http://www.engr.uvic.ca/~dastone/emacs-keys.html
- 《不能承受的生命之轻》--米兰·昆德拉
- android维持登录状态
- [工具] 小白如何修改解包打包system.img
- 【百问网】物联网项目学习总结
- python批量修改照片的大小
- python切片负数_Python切片
- 利用Python,通过关键字获取漏洞平台最新漏洞信息
- 洛谷 P3957 跳房子