首页 > 解决方案 > 有人可以用Java解释这个方法吗:

问题描述

这是在一个称为资源的类中。我不确定它的作用,需要帮助理解它。trainingDTO 有一个 UUID 和一个 Item。

if (this.toDoList.addItem(trainingDto.getItem())) {
          return Response.status(200).build();
          TrainingDTO returnDTO = new TrainingDTO();
          returnDTO.setItem(trainingDto.getItem());
          UUID uuid = toDoList.findUUIDByValue(trainingDto.getItem());
          returnDTO.setUUID(uuid.toString());
          return Response.ok(returnDTO).build();
        }

标签: java

解决方案


解释这个块有点困难,原因有两个。1.) 你没有给我们太多的上下文:即我们没有包含块的方法,或者任何其他周围的代码。2.) 这种方法有一些奇怪的代码。话虽如此,让我们逐行浏览:

if (this.toDoList.addItem(trainingDto.getItem())) {

这个if条件有点复杂,因为addItem()显然不仅仅是返回一个布尔值。通常,这被认为是错误的形式(方法应该只做一件事,添加到列表返回布尔值是两件事)。但这就是它的作用:它添加(或尝试添加)到toDoList,并返回一个布尔值。

    return Response.status(200).build();

正如所写,这将始终是执行的最后一行。这个 return 语句总是会导致函数返回,这意味着下面的行将不会被执行。但如果没有,那么下面的行将......

    TrainingDTO returnDTO = new TrainingDTO();

创建一个新的类型对象TrainingDTO

    returnDTO.setItem(trainingDto.getItem());

根据现有对象的字段设置该对象的字段(if条件中引用的相同)

    UUID uuid = toDoList.findUUIDByValue(trainingDto.getItem());

if从条件中找到对象的称为 UUID 的值

    returnDTO.setUUID(uuid.toString());

使用上面的 UUID 值来为我们的新对象设置 UUID 值

    return Response.ok(returnDTO).build();

Response使用新对象创建一个,并调用其方法build(),然后返回该结果

}

推荐阅读