Java AnnotationProcessing-创建可执行元素
我正在使用检索annotationvalues。 返回的映射的键是扩展的内容。我可以迭代entrySet并检查每个键的名称,但这会导致丑陋的if-else级联Java AnnotationProcessing-创建可执行元素,java,annotation-processing,Java,Annotation Processing,我正在使用检索annotationvalues。 返回的映射的键是扩展的内容。我可以迭代entrySet并检查每个键的名称,但这会导致丑陋的if-else级联 Map<? extends ExecutableElement, ? extends AnnotationValue> annotationValues = elementUtils.getElementValuesWithDefaults(annotationMirror); for (Map.Entry<?
Map<? extends ExecutableElement, ? extends AnnotationValue> annotationValues =
elementUtils.getElementValuesWithDefaults(annotationMirror);
for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : annotationValues.entrySet()) {
if (entry.getKey().getSimpleName().contentEquals("method1")) {
// do something with value of method1
} else if (entry.getKey().getSimpleName().contentEquals("method2")) {
// do something with value of method2
} else if (entry.getKey().getSimpleName().contentEquals("method3")) {
// do something with value of method3
}
}
Map您可以使用Runnable地图
Map<String, Runnable> map = new HashMap();
map.put("method1", new Runnable() { ... });
map.put("method2", new Runnable() { ... });
map.put("method3", new Runnable() { ... });
for (Map.Entry entry : ...) {
map.get(entry.getKey().getSimpleName()).run();
}
Map Map=newhashmap();
put(“method1”,新的Runnable(){…});
put(“method2”,新的Runnable(){…});
put(“method3”,新的Runnable(){…});
对于(Map.Entry:…){
get(entry.getKey().getSimpleName()).run();
}
我猜您希望将条目传递到方法中,因此您可能希望使用自定义接口而不是可运行接口