java - 如何将用户的输入与对象的属性进行比较并获取该对象?

标签 java string object enums

所以我正在用java编码,我是一个新手,假设我有一个地方

public class Place{
    private String name;
}

我有一个玩家

public class Player{
    private Place location;

    public void goLoc(Place p){
        this.location=p;
    }
}

我需要从用户那里获取他们想去的地方,并且我正在使用用户可以使用的枚举到我的命令列表(GO,HELP...等),所以让我们假设我有这两个对象:

Place r = new Place("Room");
Place r2 = new Place("Room2");

当用户进入例如go room时,我需要调用方法 goLoc(r)但我存储了用户使用字符串输入

Scanner in = new Scanner(System.in);
String loc = in.next();

如何通过其属性 名称获取该r 对象?或者还有其他更好的方法吗?

最佳答案

final List<Place> places = Arrays.asList(r, r2);
final Place selectedPlace = places.stream()
          .filter(p -> p.getName().equals(loc))
          .findFirst()
          .orElse(null);

Place 的所有对象存储在列表中并利用流 API。

关于java - 如何将用户的输入与对象的属性进行比较并获取该对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59034125/

相关文章:

java - 通过Java进行SQL查询, "Illegal operation on empty result set"

java - 在应用程序中嵌入 OpenJDK

c - 简单的 C 子串实现

javascript - 在javascript中,有没有办法区分字母和其他字符?

java - Java中策略模式的简洁表达

c++ - 不能用于初始化 const std::string * 类型的实体

javascript - 如何过滤深层嵌套数据? - JavaScript JSON

javascript - 向名为 'speak' 的原型(prototype)添加方法

javascript - 如何从该对象数组中获取以下输出?

java - 如何让变量填充android中的ram