Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javapoet构建类时返回正确的类型化对象_Java_Annotations_Javapoet - Fatal编程技术网

使用javapoet构建类时返回正确的类型化对象

使用javapoet构建类时返回正确的类型化对象,java,annotations,javapoet,Java,Annotations,Javapoet,我正在使用注释处理器,并使用JavaPoet从处理中生成输出类,但我似乎找不到让生成的方法返回正确类型的对象的方法。例如,我想要的输出是这样的 public static final Map<String, Object> getObjects() { return objects; } public static final Map getObjects() { return objects; } 我在MethodBuilder中使用returns方法,但它需要一个合适

我正在使用注释处理器,并使用JavaPoet从处理中生成输出类,但我似乎找不到让生成的方法返回正确类型的对象的方法。例如,我想要的输出是这样的

public static final Map<String, Object> getObjects() {
  return objects;
}
public static final Map getObjects() {
  return objects;
}
我在MethodBuilder中使用returns方法,但它需要一个合适的类作为返回类型,因此如何在构建方法时向该方法添加类似的修饰符? 这是我所拥有的一个简单版本

MethodSpec.methodBuilder("getObjects")
    .addModifiers(Modifier.PUBLIC, Modifier.STATIC)
    .returns(Map.class)
    .addStatement("return objects").build()

我试着到处找,但找不到这类问题的答案。我知道所有的贴图在技术上都是正确的,但我想避免在android studio中出现不受检查的强制转换高亮显示,而且在方法返回上没有正确的类型感觉是错误的。这是可能的,还是我应该接受突出显示并继续?谢谢。

类似的方法应该可以:

.returns(ParameterizedTypeName.get(ClassName.get(Map.class),
                                   ClassName.get(String.class),
                                   ClassName.get(Object.class)))
希望有帮助