目前还未工作,比较疑惑的一个点
在service层进行参数校验,如果是一个字段很多的javabean如何优雅的对其中的字段判null,对其中的字符串判空呢。
还有各位平常在工作场景中,是对所有参数进行参数校验还是有别的依据呢。
这个问题感觉不算问题,但是导致写代码的时候束手束脚的,总考虑是不是还有参数没有判断。
希望各位前辈能够帮助我解决这个问题。
在 Java 中,可以使用 Java 8 中的 Stream API 来优雅地判断一个 JavaBean 中的字段是否为 null 或字符串是否为空。
假设有一个名为 User 的 JavaBean,其中包含多个字段,例如 id、name、email 等。可以使用以下代码来判断其中的字段是否为 null 或字符串是否为空:
User user = new User();
user.setId(1L);
user.setName(null);
user.setEmail("example@gmail.com");
List<String> nullFields = Arrays.stream(user::getters)
.filter(Objects::isNull)
.collect(Collectors.toList());
List<String> emptyFields = Arrays.stream(user::getters)
.filter(String::isEmpty)
.collect(Collectors.toList());
其中,user::getters 表示获取 User 类中的所有可枚举属性,Objects::isNull 和 String::isEmpty 分别表示判断属性是否为 null 或空字符串。最后将结果收集到 List 中返回。
对于参数校验的问题,通常需要根据具体业务场景和需求来决定是否进行参数校验。一般来说,对于一些敏感的操作,例如修改密码、删除用户等操作,需要进行参数校验,以确保用户输入的数据合法且符合业务要求。而对于一些简单的查询操作,则通常不需要进行参数校验。此外,也可以根据具体需求对不同类型的参数进行不同的校验,例如对密码需要进行加密存储等。
我懂您的意思了,你看我这样想对不对,可以参照表的约束,以及字段的关键性来判断某字段是否需要参数校验
@三井寿: 虽然可以通过数据库字段约束判断,但是换一种数据库就要重新写一遍,例如oracle换mssql,最好通过实体类的特性判断,这样的代码可以跨数据库使用,国内正推进国产数据库的应用,代码最好不要跟数据库字段绑定,万一要换达梦数据库呢