我的控制器中有 2 个 @RequestParam 参数。我想根据条件设置两个参数的必需值。条件可能是,如果传递了一个参数,则必须传递另一个。因此,将 other 的 required 设置为 true,反之亦然。否则,如果没有传递任何参数,则将两者都设置为 false。
@RestController
public class TestController {
@GetMapping("/test")
public void test(@RequestParam(value = "a", required = (b !=null) String a,
@RequestParam(value = "b", required = (a !=null) ) String b,) {
{
}
}
Run Code Online (Sandbox Code Playgroud)
在@RequestParam() 中使用变量名的语法是错误的,但我想解释一下我想要什么。
我想编写一个通用函数,它接受同一实体类的两个对象并比较不同的字段,并返回随时间对特定字段所做的所有更改的列表。
许多实体类之一是 Member,如下所示
public class Member {
String firstName;
String lastName;
String driverLicenseNumber;
Integer age;
LocalDateTime timestamp;
}
Run Code Online (Sandbox Code Playgroud)
在数据库中,我有一个名为 member_audit 的表,每当使用触发器在成员表中发生更改时,该表都会填充旧数据(对于其他实体也类似)。
我要返回的每个实体的资源列表类似于
public class MemberAuditsResource {
private String field;
private LocalDateTime on;
private String changeType;
private String oldValue;
private String newValue;
}
Run Code Online (Sandbox Code Playgroud)
我只能想到像这样为每个实体分别编写一个函数
private List<MembeAuditsResource> memberCompare(Member obj1, Member obj2) {
//Compare every field in both the objects using if else and populate the resource.
}
Run Code Online (Sandbox Code Playgroud)
然后调用上面的函数来比较entity_audit表中的每对记录。代码将非常大,无法比较每个字段并乘以不同的实体。有没有更好、更有效的方法呢?
我有一个当前java.time.LocalDateTime的对象。是否有一种简单的方法来获取即将到来的特定时间的LocalDateTime对象?假设当前日期和时间是17/10/2019 8.00pm。下一个凌晨5.00的即将发布日期为18/10/2019。假设当前日期和时间是17/10/2019 2.00 am,那么下一个5.00 am的即将到来的日期将是17/10/2019本身。
如何以简单的方式实现这一目标?是否有特定的方法?