gpt4 book ai didi

java - 重构强制map.get java代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:59 25 4
gpt4 key购买 nike

请问关于如何重构此 Java 代码以便我不必重复这些代码块 3 次(或更多)次的任何想法?

Integer id = null;
try {
id = (Integer)extradata.get("id");
}
catch(Exception e) {
logger.error(e);
}

if (id == null) {
logger.error("no id set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}

String name = null;
try {
name = (String)extradata.get("name");
}
catch(Exception e) {
logger.error(e);
}

if (name == null) {
logger.error("no name set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}

String city = null;
try {
city = (String)extradata.get("city");
}
catch(Exception e) {
logger.error(e);
}

if (city == null) {
logger.error("no city set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}

最佳答案

您可以使用静态泛型方法:

private static final <T> T getValue(Map<String, Object> extradata, String key, Class<T> clazz) {
Object val = extradata.get(key);
if (val == null) {
handleNullVariable("name");
return null;
}
return clazz.cast(val);
}

然后你可以调用它:

Integer id = getValue(extradata, "id", Integer.class);
String name = getValue(extradata, "name", String.class);

关于java - 重构强制map.get java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com