我正在尝试将方法作为参数传递。怎么做?
我记得这个:
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
@ExceptionHandler({ MyClass.class })
public ResponseEntity<BaseResponse> handleSLException(ServiceLayerException e, WebRequest request) {
checkCookie(request);
}
public void checkCookie(WebRequest request) {
String answer = request.getHeader("cookie");
if(answer!=null) {
LOGGER.error("The cookies are: " + answer);
}
如何使用Java 8和Lambda做同样的事情?我希望能够使用相同的方法和更先进的技术。
答案 0 :(得分:0)
我相信以下代码描述了您正在寻找的内容。您可以使用谓词或类似表达式来实现所需。 import java.util.function.Predicate;
public class Snippet{
private static Predicate pred = (element) -> element.equals("Sample3");
private static Predicate pred2 = (element) -> element.equals("Sample3");
public static void main(String args[]){String[] strArray = {"Sample3", "Sample4", "Sample5"};
for(String str: strArray) {
System.out.print("pred1");
test(pred,str);
System.out.print("pred2");
test(pred2,str);
}
}
public static void test(Predicate p,String str) {
System.out.println(p.test(str));
}
}