前言

升级了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相关推荐

  1. 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 ...

  2. 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. ...

  3. 在拦截器中获取请求参数,[Ljava.lang.String; cannot be cast to java.lang.String报错

    Map<String,Object> parametersmap=invocation.getInvocationContext().getParameters();//获取请求参数    ...

  4. Java报错:java.math.BigDecimal cannot be cast to java.lang.String

    从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...

  5. “无效数字” ;java.lang.Integer cannot be cast to java.lang.String

    今天页面上突然查询不出数据,大致的sql语句是 select xx ,xxx from table a where a.lrmb in ( 6101060033, 61010503300, 61016 ...

  6. java.lang.Long cannot be cast to java.lang.Integer解决办法

    情景: mybatis连接oracle 报错: 测试增的时候,报错 Java.lang.Long cannot be cast to  java.lang.Integer:删改没有报错. 排查过程: ...

  7. [记录]java.math.biginteger cannot be cast to java.lang.long

    可以直接使用BigInteger类型进行接收, BigInteger id = (BigInteger)QueryRunner(conn,"SELECT LAST_INSERT_ID&quo ...

  8. java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

    你好我是辰兮,本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案. 文章目录 一.实战问题 用postman测 ...

  9. java.math.BigDecimal cannot be cast to java.lang.Integer

    问题描述:利用sql语句从数据库里面取出数据后,对取出的数据进行数据转换时,出现了java.math.BigDecimal cannot be cast to java.lang.Integer错误, ...

  10. 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 ...

最新文章

  1. 免费!「神策 2021 数据驱动大会」西安大数据技术专场来袭
  2. Rocchio算法—文本分类
  3. Unity 下载存档
  4. [Spark] - HashPartitioner RangePartitioner 区别
  5. 在Axure中通过全局变量实现两个文本框与中继器联动
  6. 免费文件分发服务器,文件分发服务器 AWS CloudFront(CDN)使用入门-以S3为例 Lebal:Research...
  7. Excel表格输入身份证数字就变了 Excel函数公式大全 Excel表格制作
  8. 74HC595的中文资料
  9. igbt原理动画演示视频_igbt的结构原理与特性图解
  10. hdu2825(AC 自动机)
  11. (愚人节玩笑)历史上最奇怪的圆周率计算法
  12. 字节和兆字节的换算_什么是兆字节(MB)?
  13. android category 讲解
  14. RK3568 Android12 长按power键功能设置
  15. 带上问题来看:主流技术Java、Python怎么?基本功又该怎么学?(什么是MySQL、Linux、算法?又该怎么用?)
  16. String Shifting
  17. ibm java虚拟机_IBM J9 Java虚拟机正式开源,贡献给Eclipse基金会管理
  18. 初识云计算和DevOps
  19. 华为机试 HJ21简单密码【java实现】
  20. adb命令 android 串口_Android adb 串口设备调试方法

热门文章

  1. 宋智孝那个机器人_陈柏霖机器人竟然冷落宋智孝
  2. Emacs快捷键 转自:http://www.engr.uvic.ca/~dastone/emacs-keys.html
  3. 《不能承受的生命之轻》--米兰·昆德拉
  4. android维持登录状态
  5. [工具] 小白如何修改解包打包system.img
  6. 【百问网】物联网项目学习总结
  7. python批量修改照片的大小
  8. python切片负数_Python切片
  9. 利用Python,通过关键字获取漏洞平台最新漏洞信息
  10. 洛谷 P3957 跳房子