2017-01-20 11 views
0

Есть ли способ разрешить код? -В Javapoet, почему «ClassName.bestGuess (« int »)« получить ошибку?

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

когда fieldInfo.getClazz() возвращает "ИНТ", "Поплавок", код будет выдавать ошибку в

java.lang.IllegalArgumentException: не могли бы сделать предположение для ИНТ

+0

Можете ли вы рассказать, что такое 'info' здесь, и подтвердить, что' FieldInfo' является 'sun.reflect.FieldInfo'? – nullpointer

ответ

0

Система типа Java имеет множество типов типов: классы, массивы, примитивы, параметризованные типы и т. Д. Используемый метод предполагает, что вызывающий абонент хочет ClassName, а не примитив. Используйте для этого TypeName.INT.