【问题标题】:In Javapoet, why "ClassName.bestGuess("int")" get error?在 Javapoet 中,为什么 "ClassName.bestGuess("int")" 会出错?
【发布时间】:2017-01-20 12:49:51
【问题描述】:

有没有办法解决代码? -

for (FieldInfo fieldInfo : info.getResult()) {
    result.addField(FieldSpec.builder(ClassName.bestGuess(fieldInfo.getClazz()),fieldInfo.getName())
          .addModifiers(Modifier.PRIVATE)
          .build()
    );
}

fieldInfo.getClazz() 返回 "int","float" 时,代码会抛出错误

java.lang.IllegalArgumentException: 无法猜测 int

【问题讨论】:

  • 你能分享一下info是什么,并确认FieldInfosun.reflect.FieldInfo吗?

标签: android apt javapoet


【解决方案1】:

Java 的类型系统有很多种类型:类、数组、基元、参数化类型等。您使用的方法假定调用者需要 ClassName 而不是基元。为此使用TypeName.INT

【讨论】:

    猜你喜欢
    • 2016-06-28
    • 2019-04-22
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多