Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将静态变量调用到非静态方法,即我需要调用maxId变量来插入方法_Java_Json_Playframework 2.5 - Fatal编程技术网

Java 如何将静态变量调用到非静态方法,即我需要调用maxId变量来插入方法

Java 如何将静态变量调用到非静态方法,即我需要调用maxId变量来插入方法,java,json,playframework-2.5,Java,Json,Playframework 2.5,这是insert方法。现在我想要访问那个maxId变量来插入方法。 任何人都可以告诉我如何清除此项以获取id增量,但您不能。这是一个局部变量 这也不是一个静态方法,它是一个静态块。它是在类第一次加载到内存中时执行的,而不是之后。如果要保留该值,请将代码更改为: public Result insert(Http.Request request) { JsonNode jsonNode = request.body().asJson(); if (jsonNode

这是insert方法。现在我想要访问那个maxId变量来插入方法。
任何人都可以告诉我如何清除此项以获取id增量,但您不能。这是一个局部变量

这也不是一个静态方法,它是一个静态块。它是在类第一次加载到内存中时执行的,而不是之后。如果要保留该值,请将代码更改为:

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));

    }


并像调用任何其他方法一样调用它。

在该方法中,我们必须编写以下内容:

public static int getMaxId() {
    Movie max = Collections.max(movies, Comparator.comparingInt(Movie::getId));
    return max.getId();
}

读取静态块vs静态变量。你说的不是静态变量,而是静态代码块。在创建了“我如何在方法中访问”之后,如何调用“你能发送代码吗?”请注意:如果你不更改代码,你就不能访问该变量/值。将其存储为类级静态变量,您就可以使用它了。代码在我的回答中现在我希望插入方法的maxId调用等于maxId和movie对象id值。。。例如,id是通过id值为的movie对象分配的,您不能从方法中调用max.getId,因为您没有该对象。您还可以删除该静态块的最后两行,并将它们放入您的方法中
private static int maxId;

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));
    maxId = max.getId();
}
public static int getMaxId() {
    Movie max = Collections.max(movies, Comparator.comparingInt(Movie::getId));
    return max.getId();
}
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));

    }