- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 java 8 编写代码,但我迭代了一个 List
然后找到RestaurantOrderBook
使用类别类型。然后把那个 List
成Map
.它显示此错误:
Local variable itemList defined in an enclosing scope must be final or effectively final
Query query = new Query();
String categ = category;
query.addCriteria(Criteria.where("restaurantId").is(restaurantId));
List<RestaurantOrderBook> itemList = new ArrayList<RestaurantOrderBook>();
itemList = mongoTemplate.find(query, RestaurantOrderBook.class);
System.out.println("size : " + itemList.size());
Map<String , List<RestaurantOrderBook>> map = new HashMap<String , List<RestaurantOrderBook>>();
Arrays.asList("TakeAway", "Dining").forEach(e ->{
//Following line throws error:
List<RestaurantOrderBook> list = itemList.stream().filter(a -> !a.getOrderType().isEmpty() && a.getOrderType().equals(e)).collect(Collectors.toList());
map.put(e, list);
});
@Override
public EventReportRewardsPoints eventReportRewardsPoints(String organizerId) {
try{
List<Event> listOfEvents = eventRepo.findByOrganizerId(organizerId);
EventReportRewardsPoints eventTransReport = new EventReportRewardsPoints();
Integer soldTics = 0;
Double totalRevenue = 0d;
Integer soldToday = 0;
Integer findTotalAvailableTics = 0;
Integer findTotalQtytics = 0;
for (Event event : listOfEvents) {
List<EventTicket> eventTicket = eventTicketRepo.findByEventId(event.getId());
Integer sumOfAvailabletics = eventTicket.stream()
.mapToInt(EventTicket::getRemainingTickets).sum();
findTotalAvailableTics = findTotalAvailableTics + sumOfAvailabletics;
Integer sumOfQtytics = eventTicket.stream().mapToInt(EventTicket::getQty).sum();
findTotalQtytics = findTotalQtytics + sumOfQtytics;
List<EventTicketBook> listOfEventsTic = eventTicketBookRepository.findByEventId(event.getId());
for (EventTicketBook eventTicketBook : listOfEventsTic) {
Double sumOfSales = eventTicketBook.getTickets().stream().mapToDouble(EventTicket::getPrice).sum();
totalRevenue = totalRevenue + sumOfSales;
Date now = new Date();
System.out.println("create date : " + eventTicketBook.getCreateOn());
/*if(now.compareTo(eventTicketBook.getCreateOn()) == 0){
Integer sumOfSoldToday = eventTicketBook.getTickets().stream().mapToInt(EventTicket::getQty).sum();
soldToday = soldToday + sumOfSoldToday;
}*/
}
}
System.out.println("findTotalQtytics : " + findTotalQtytics);
System.out.println("findTotalAvailableTics : " + findTotalAvailableTics);
soldTics = findTotalQtytics - findTotalAvailableTics;
eventTransReport.setTotalRevenue(totalRevenue);
eventTransReport.setSoldToday(soldToday);
eventTransReport.setTicketsSold(soldTics);
return eventTransReport;
}catch(Exception e ){
e.printStackTrace();
}
return null;
}
最佳答案
您正在使用 itemList 在 lambda 表达式中。因此它必须是最终的。
Java 8 引入了 的新概念最终生效 ,这意味着编译器会检查使用的变量是否在使用中是最终的,并且不会强制开发人员将其显式声明为最终的。
因此,如果您将代码更改为
final List<RestaurantOrderBook> itemList = new ArrayList<RestaurantOrderBook>();
itemList = mongoTemplate.find(query, RestaurantOrderBook.class);
List<RestaurantOrderBook> itemList = mongoTemplate.find(query, RestaurantOrderBook.class);
关于Java 8 显示此错误。在封闭作用域中定义的局部变量 itemList 必须是 final 或有效 final,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831808/
从代码 fragment 中,我记录了一些调试点,发现mImages.size()在不同的地方给出不同的输出。无论 mImages.seize() 的值如何,它总是返回 0在public ArrayL
这三个类是采购、发票和项目 商品名称和总价的列表代码在购买中。 public class Invoice { private String invNumber; private Ite
QuickExplain :我的 elementList 是 [1, 2, 3, 4],如果 3, 4 不在表中,我想要 3, 4。 附言。如果您使用“NOT IN”,这会返回表中的值,但我只想要我查
我在生产站点上遇到了这个 PHP 错误,但在本地主机上却没有: Fatal error: Uncaught Error: Class 'PayPal\Api\Itemlist' not found i
我想在我的交易中添加一个项目。 $json = ' [ { "name": "Voucher", "description":"Voucher",
我使用 Material-UI 创建了一个可选择的组件 let SelectableInfiniteList = makeSelectable(Infinite); 然后将 ListItem 放入其中
我在一页上定义了多个 ItemLists,Chrome 扩展结构化数据测试工具说:“ITEMLISTS_MULTIPLE_LISTS_ON_PAGE” 有没有办法定义多个ItemList一页内的元素仍
我真的需要 Redux 来管理应用程序状态来实现这一点吗?如果不是 - 我如何管理/实现我的路线和状态 和 /成分? 我应该创建 吗?组件和嵌套其他组件在? 也许 HOC 就是这种情况? 什么是最好
我需要您的集体专业知识...(感谢您为我提供的任何指导!!) 问题: 我的 PrimeFaces“p:autocomplete”标签正在生成一个“Method not found"错误在 "compl
[![ section.index === this.state.expandedRowId ? this.getEpisodeScenes(se
我正在尝试将给定目录中的所有文件添加到 ClCompile 元数据的 ForcedUsingFiles 参数中。 我使用以下代码: @(ForcedUsingFilesLis
[![ section.index === this.state.expandedRowId ? this.getEpisodeScenes(se
我正在使用 java 8 编写代码,但我迭代了一个 List然后找到RestaurantOrderBook使用类别类型。然后把那个 List成Map .它显示此错误: Local variable i
每当我尝试为我的项目构建 APK 时,都会收到以下错误: Error:Error converting bytecode to dex: Cause: com.android.dex.DexExcep
首先,这是一篇很长的文章。感谢您花时间仔细阅读! :) 我有如下三张表(抱歉发了这么长的帖子,但最好清楚一点...) -- 表 itemdata 的表结构 CREATE TABLE IF NOT EX
我制作了显示文章列表的类别页面的结构化数据。在 Google 中搜索时,此列表必须显示为“旋转木马”。 https://developers.google.com/search/docs/guides
出于某种原因,我的老板喜欢创建自定义类型来表示通用列表(即使在大多数情况下,他的自定义类型没有成员!我认为他只是懒惰,不喜欢键入列表或其他内容,而是对我来说,这很蹩脚,并且根据以下问题让我很头疼。 以
这个问题在这里已经有了答案: T must be contravariantly valid (3 个答案) 关闭 3 年前。 为什么方法可以编译,属性却报错? public interface I
我是一名优秀的程序员,十分优秀!