租一部电影,得到一个空指针异常

时间:2018-05-06 06:29:26

标签: java

i_ID

当我运行此代码时,我在#include <string.h> #include<stdio.h> #include<stdlib.h> typedef struct bank { char an; char name; char type; int bal; }; int main() { int i=0,n; printf("Enter the number of accounts\n"); scanf("%d",&n); struct bank a[n]; printf("Enter the details of the users\n"); for(i=0;i<n;i++) { scanf("%s%s%s%d",a[i].an,a[i].name,a[i].type,&a[i].bal); } printf("The details of the users are\n"); for(i=0;i<n;i++) {printf("%s\n%s\n%s\n%d\n\n",a[i].an,a[i].name,a[i].type,a[i].bal);} char atype[10]; printf("Enter the type of account you want to search\n"); scanf("%s",atype); char typ[10]; char s[]="savings"; char c[]="current"; int result,res1,res2; result = strcmp(atype,s); if(result == 0) { for(i=0;i<n;i++) { typ[10] = a[i].type; res1 = strcmp(typ,s); if(res1 == 0) { printf("%s\n%s\n%s\n%d\n\n", a[i].an,a[i].name,a[i].type,a[i].bal); } printf("\n"); } } else { for(i=0;i<n;i++) { typ[10] = a[i].type; res2 = strcmp(typ,c); if(res2 == 0) { printf("%s\n%s\n%s\n%d\n\n", a[i].an,a[i].name,a[i].type,a[i].bal); } printf("\n"); } } }

上得到一个空指针异常

public void rentMovie(){ System.out.println("ENter a customer ID: "); int ID =In.nextInt(); System.out.print("Enter a movie: "); String name=In.nextInt(); for(Customer customer:customers){ Optional<Movie> movie = catalogue.getMoviesAvailable().stream().filter(b -> b.getTitle().equals(movieName)).findFirst(); if(movie.isPresent()) { catalogue.getMoviesAvailable().remove(movie.get()); catalogue.getMoviesRented().add(movie.get()); customer.getCurrentlyRented().add(movie); customer.getRentingHistory().add(movie.get()); } }}

你能告诉我如何纠正这个问题吗?

客户类

customer.getCurrentlyRented().add(movie);

目录类

customer.getRentingHistory().add(movie.get());

在租借电影的同时,还应该在租借电影课上更新目前的租房和租房历史。

2 个答案:

答案 0 :(得分:3)

您的列表未初始化。

你应该在构造函数中给出一个空列表

stbi_load("dvd_logo2.png", &width, &height, &nrChannels, 4);

答案 1 :(得分:0)

您确定从流中收到了一部电影吗?声明一个Movie而不是一个可选项可能更好。 我愿意:Movie movie = catalogue.getMoviesAvailable().stream().filter(b -> b.getTitle()toLowerCase().equals(movieName.toLowerCase())).findFirst(); 注意toLowerCase()。 方法是isPresent()一个自定义类吗?你可能想尝试一下 if(movie != null)

我希望这有效。否则,如果您的过滤器中有匹配项,我会使用调试器手动查看