return 使用 javapoet 构建 class 时正确类型的对象
return proper typed objects when building a class using javapoet
我正在使用注释处理器并使用 JavaPoet 从处理中生成输出 class,但我似乎无法找到一种方法来生成正确类型的方法 return目的。例如,我想要的输出是这样的...
public static final Map<String, Object> getObjects() {
return objects;
}
但是我只能让它做这样的事情...
public static final Map getObjects() {
return objects;
}
我在 MethodBuilder 中使用了 returns 方法,但是它需要一个合适的 class 作为 return 类型,所以你怎么能像方法一样添加修饰符正在建造?
这是我所拥有的一个简单版本...
MethodSpec.methodBuilder("getObjects")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(Map.class)
.addStatement("return objects").build()
我试过到处搜索,但找不到此类问题的答案。我知道所有地图在技术上都是如此,但我想避免在 android 工作室中出现该死的未经检查的演员表突出显示,而且在方法 return 上没有正确的类型感觉不对。这是可能的,还是我应该接受突出显示并继续前进?谢谢。
类似的东西应该可以工作:
.returns(ParameterizedTypeName.get(ClassName.get(Map.class),
ClassName.get(String.class),
ClassName.get(Object.class)))
希望对您有所帮助。
我正在使用注释处理器并使用 JavaPoet 从处理中生成输出 class,但我似乎无法找到一种方法来生成正确类型的方法 return目的。例如,我想要的输出是这样的...
public static final Map<String, Object> getObjects() {
return objects;
}
但是我只能让它做这样的事情...
public static final Map getObjects() {
return objects;
}
我在 MethodBuilder 中使用了 returns 方法,但是它需要一个合适的 class 作为 return 类型,所以你怎么能像方法一样添加修饰符正在建造? 这是我所拥有的一个简单版本...
MethodSpec.methodBuilder("getObjects")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(Map.class)
.addStatement("return objects").build()
我试过到处搜索,但找不到此类问题的答案。我知道所有地图在技术上都是如此,但我想避免在 android 工作室中出现该死的未经检查的演员表突出显示,而且在方法 return 上没有正确的类型感觉不对。这是可能的,还是我应该接受突出显示并继续前进?谢谢。
类似的东西应该可以工作:
.returns(ParameterizedTypeName.get(ClassName.get(Map.class),
ClassName.get(String.class),
ClassName.get(Object.class)))
希望对您有所帮助。