java - 铸造Java功能接口
问题描述
我有一个功能接口 Test 和一个对象(测试)实现了它。然后使用 HttpServletRequest request.setAttribute 方法将其设置为属性。当我尝试使用 request.getAttribute 方法在 JSP 文件中取回此属性时,我收到了 ClassCastException 错误。ListProductsServlet$$Lambda$37/186880189 不能强制转换为测试。
是否可以为请求添加 lambda 表达式作为属性并将其取回?我搜索了解决方案,但没有找到任何解决方案。
public interface Test<Product> {
boolean func(Product p);
}
Test<Product> test = new Test<Product>() {
@Override
public boolean func(Product p) {
return search == null || search.equals("") ? true : p.filterProducts("display");
}
};
request.setAttribute("test", test); //OK in servlet
Test test = (Test) request.getAttribute("test"); //ClassCastException
解决方案
推荐阅读
- go - 在confluent kafka go中阅读来自kafka主题的消息时如何使用确认?
- material-ui - 如何为包含 xs={12} 布局全宽的材质 ui 网格项编写 xs、sm、md、lg?
- regex - 正则表达式匹配单词和特殊字符之间的字符串
- list - 创建二维列表,然后在 Scala 中创建一个 DataFrame
- netsuite - 解密凭据时出错 (NetSuite)
- javascript - 如何通过 CSS 使用垂直居中的锚点为文本设置动画
- amazon-web-services - AWS RDS 定价
- azure-devops - CI/CD 管道 Azure Devops - 删除了文件夹权限
- java - android studio 和 Java 服务器之间的通信。问题 GRPC
- javascript - 从构造函数调用 JS 原型函数(ES6 模块)