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

时间:2019-11-25 14:32:27

标签: java string object enums

所以我正在用Java编程,我是一个新手,假设我有一个class地方

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

当用户输入例如去房间时,我需要呼叫method goLoc(r),但是我用{ {1}}。

input

如何通过String Scanner in = new Scanner(System.in); String loc = in.next(); 来获得r object?还是有其他更好的方法?

1 个答案:

答案 0 :(得分:2)

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

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