java - 如何将静态变量调用为非静态方法,即我需要调用maxId变量来插入方法
问题描述
public static List<Movie> movies;
static {
movies = new ArrayList<>();
movies.add(new Movie(1, "Fprd vs Ferrari", "Movie on Racing", "abcd", "xyz"));
movies.add(new Movie(2, "F2", "Comedy Movie", "Venkatesh", "Tamanna"));
movies.add(new Movie(3, "Titanic", "Movie", "Hero", "Heroine"));
Movie max = Collections.max(movies, Comparator.comparingInt(Movie::getId));
int maxId = max.getId();
}
public Result insert(Http.Request request) {
JsonNode jsonNode = request.body().asJson();
if (jsonNode == null) {
return badRequest("insufficient movie information");
}
Movie movie = Json.fromJson(jsonNode, Movie.class);
movies.add(movie);
return ok(Json.toJson(movie));
}
这是插入方法。现在我想访问那个 maxId 变量来插入方法。任何人都可以告诉我如何清除这个以增加 id
解决方案
在这个方法中,我们必须这样写:
public Result insert(Http.Request request) {
JsonNode jsonNode = request.body().asJson();
if (jsonNode == null) {
return badRequest("insufficient movie information");
}
String movieName = jsonNode.get("movieName").asText();
boolean existmovie = containName(movieName);
Movie movie = Json.fromJson(jsonNode, Movie.class);
int nextId = Collections.max(movies, Comparator.comparingInt(Movie::getId)).getId();
movie.setId(++nextId);
if (existmovie == true) {
return badRequest("Movie Already exist");
}
movies.add(movie);
return ok(Json.toJson(movie));
}
推荐阅读
- google-chrome - Nginx Round Robin 负载均衡 上游服务器不按顺序排列,chrome、firefox、IE浏览器之间的行为变化
- gitlab - 如何从 Gitlab 管道 YML 文件中包含 Jira 字段(测试存储库)
- amazon-web-services - Yaml 文件无法 lint
- typescript - 在打字稿中使用字符串而不是枚举
- semaphore - 当线程持有二进制信号量然后再次尝试获取它时会发生什么?
- swift - IBDesignable 自定义 NSControl 类 - Interface Builder 中的框架未调整大小
- r - 如何将R列表按行合并到data.frame中
- android - Flutter 包依赖解析问题
- github-actions - 如何将 Amazon Corretto JDK 与 Github Actions 结合使用?
- python - Python Pandas 根据列值删除多行