首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA大规模参数验证的设计?

JPA大规模参数验证的设计?
EN

Stack Overflow用户
提问于 2015-06-16 10:00:00
回答 1查看 69关注 0票数 0

我有一个方法,它接收一个JSON并取出数据并将其分发给各种字符串,这样就可以在一个实体中设置数据并持久化。下面的示例非常简单,但关于20+字段的实际代码,请参阅公共项目createProject(JsonObject jsonInst) {

代码语言:javascript
复制
Projects projectInst = new Projects();
String pId = jsonInst.get("proId").getAsString();
String pName = jsonInst.get("proName").getAsString();
String pStatus = jsonInst.get("proStatus").getAsString();
String pCustId = jsonInst.get("proCustId").getAsString();
String pStartDate = jsonInst.get("proStartDate").getAsString();
...

//Set the entity data
projectInst.setProjectId(pId);
projectInst.setProjectName(pName);
...

注意,如果varible剂量在Json中有一个腐蚀条目,则此代码将以空指针异常中断。显然,我需要验证每个参数,然后调用.getAsString()

从可读性的角度来看,什么是最好的方法?我可以为每个参数创建2个变量,例如检查和设置。

代码语言:javascript
复制
if(jsonInst.get("proName")){
String pName = jsonInst.get("proName").getAsString();
}

或者我应该等待它的设置

代码语言:javascript
复制
if(!pName.isEmpty()){
projectInst.setName(pName)
}
...

您认为哪一个参数是防止错误的最佳参数。如果某件事情是大规模设置的,那么是否有一种方法可以减少我在使用那个varible之前必须编写的代码量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 10:22:29

您可以创建一个将字段名作为参数并为该字段返回json值的方法:

代码语言:javascript
复制
private String getJSONData(String field,JsonObject json){
    String data=null;
    if(json.has(field)){
        data=json.get(field).getAsString();
    }   
    return data;    
}

您可以为每个字段调用此方法:

代码语言:javascript
复制
String pId = getJSONData("proId",jsonInst);

通过这种方式,您不仅可以转义NullPointerException,而且可以避免代码重复。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30864396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档