Closed EHG613 closed 1 year ago
data class SumInfo( var columnistCount: Int = 0, var courseCount: Int = 0 )
需求场景需要支持默认值为0;解析的时候会有警告信息
java.lang.IllegalArgumentException: method com.dop.data.user.User$SumInfo.<init> argument 4 has type int, got null
警告来自下面的代码
Object[] parameterValue = new Object[parameterLength]; // 这个参数是标记位,用于判断有没有设置默认值进去,会进行 & 位运算进行判断 // 这里设置成 Integer.MAX_VALUE,Integer.MAX_VALUE & 大于 0 的值,都会等于那个值 // 这样就能每次都能走到设置默认值那里 // Github 地址:https://github.com/getActivity/GsonFactory/issues/27 parameterValue[parameterLength - 2] = Integer.MAX_VALUE; // 这个参数 DefaultConstructorMarker 类型,用于标记构造函数是 Kotlin 语法自动生成的 parameterValue[parameterLength - 1] = null; for (int i = 0; i < parameterTypes.length - 2; i++) { Class<?> parameterType = parameterTypes[i]; parameterValue[i] = getTypeDefaultValue(parameterType); } instance = (T) constructor.newInstance(parameterValue);
请问要怎么正确的处理默认值0的情况呢?
否
是
小伙子,这个警告会带来什么实际性的影响吗?
未发现有实质性的影响,只是控制台的warning过多
那就不去管它
问题描述【必填】
需求场景需要支持默认值为0;解析的时候会有警告信息
警告来自下面的代码
请问要怎么正确的处理默认值0的情况呢?
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是