【问题标题】:How to compare the user's input with an attribute of an object and get that object?如何将用户的输入与对象的属性进行比较并获取该对象?
【发布时间】:2019-11-25 14:32:27
【问题描述】:

所以我在 java 中编码,我是一个新手,假设我有一个class Place

public class Place{
    private String name;
}

我有一个class 播放器

public class Player{
    private Place location;

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

我需要从用户那里得到他们想去的地方,我正在使用enum 到我的用户可以使用的命令列表(GO、HELP...等)所以假设我有这两个objects

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

当用户进入例如 go room 时,我需要调用 method goLoc(r) 但我将来自用户的 input 存储为 String

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

我如何通过attribute name 得到r object?还是有其他更好的方式来做到这一点?

【问题讨论】:

    标签: java string object enums


    【解决方案1】:
    final List<Place> places = Arrays.asList(r, r2);
    final Place selectedPlace = places.stream()
              .filter(p -> p.getName().equals(loc))
              .findFirst()
              .orElse(null);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      相关资源
      最近更新 更多