Java 如何写条件,当我在邮递员发送相同的电影名称时,我不会接受相同的电影名称

Java 如何写条件,当我在邮递员发送相同的电影名称时,我不会接受相同的电影名称,java,json,playframework-2.5,Java,Json,Playframework 2.5,这是电影课 。我有使用post请求在postman中添加电影的代码 public class Movie { private int id; private String movieName; private String description; private String hero; private String heroine; public Movie(){ } public Movie(int id, Stri

这是电影课

。我有使用post请求在postman中添加电影的代码

public class Movie {


    private int id;
    private String movieName;
    private String description;
    private String hero;
    private String heroine;

    public Movie(){

    }

    public Movie(int id, String movieName, String description, String hero, String heroine) {
        this.id = id;
        this.movieName = movieName;
        this.description = description;
        this.hero = hero;
        this.heroine = heroine;

    }
//here have setter and getter methods

这是控制器类。现在不接受重复moviename的逻辑是什么

public class MovieController extends Controller {

    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"));
        movies.add(new Movie(4, "Saaho", "action", "Prabhas", "Shradda kapoor"));
        movies.add(new Movie(5, "Bhahubali 1", "action", "Prabhas", "Tamanna"));

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

您可以这样做:

Movie movie = Json.fromJson(jsonNode, Movie.class);

if(movies.stream().noneMatch(m -> m.getMovieName().equals(movie.getName()))) {
    movies.add(movie);
    return ok(Json.toJson(movie));
} else {
    // Movie name already exists... Throw exception here
    return badRequest("Movie already exists");
}

解决此问题的最佳方法是重写Movie对象上的equals方法

@Override
public boolean equals(Object obj) {
if (obj == this) {
        return true;
    }
    if (obj == null || obj.getClass() != this.getClass()) {
        return false;
    }

    Movie movie= (Movie) obj;
    return movie.getMovieName().equals(this.movieName);
}
在这里,您可以定义检查两部电影是否相等的逻辑(电影名称比较)。 这种方法将更易于维护

然后使用以下命令检查列表是否包含请求中的电影

    if (movies.contains(movie)) {
      return badRequest("Movie already exists");
    } 
    movies.add(movie);
    return ok(Json.toJson(movie));

你能帮忙吗?我还有一个问题是的,当然。我能帮上什么忙吗?现在我在邮递员尸体上使用pots请求提供身份证。但现在我想在添加电影时自动增加id,现在我有静态电影列表id No:5,它的开始增量从id No.6开始(一旦参考上面的代码,我想您可以理解先生),所以我如何编写logicLet us..equals(movieName)这里它将显示错误为declare local variablereturn movie.getMovieName().equals(this.movieName);在电影课上你们是平等的,对吗?我可以在Movie类中看到变量movieName(this.movieName)
    if (movies.contains(movie)) {
      return badRequest("Movie already exists");
    } 
    movies.add(movie);
    return ok(Json.toJson(movie));