这里是我的方法,我想使它成为动态的,应该接受类类型作为参数,然后我可以在我的 predicate 中使用它,我已经尝试使用instanceof,但没有工作
public static String setStatus(List<SmeObject> s) {
String finalStatus = "";
Predicate<SmeObject> ifAllCompleted = x.getStatus().equals("Completed");
Predicate<SmeObject> ifAllNotStarted = x.getStatus().equals("Not Started");
if (s.stream().allMatch(ifAllCompleted)) {
finalStatus = "Complete";
} else if (s.stream().allMatch(ifAllNotStarted)) {
finalStatus = "Not Started";
} else {
finalStatus = "In-progress";
}
return finalStatus;
}
public static String setStatus(List<ControllerObject> s) {
String finalStatus = "";
Predicate<ControllerObject> ifAllCompleted = x.getStatus().equals("Completed");
Predicate<ControllerObject> ifAllNotStarted = x.getStatus().equals("Not Started");
if (s.stream().allMatch(ifAllCompleted)) {
finalStatus = "Complete";
} else if (s.stream().allMatch(ifAllNotStarted)) {
finalStatus = "Not Started";
} else {
finalStatus = "In-progress";
}
return finalStatus;
}
1条答案
按热度按时间vptzau2j1#
如果
ControllerObject
以及SmeObject
共享一个公开getStatus()
方法,则您可能希望使您的方法采用带有List<? extends CommonObjectSuperType>
:但是,如果,
ControllerObject
以及SmeObject
没有公开的公共父级getStatus()
如果您不能更改它们,那么您可以选择通过使方法泛型来使调用方发送 predicate :然后调用方将在实际类型的上下文中创建 predicate 。