首页 > 解决方案 > 如何将用户的输入与对象的属性进行比较并获取该对象?

问题描述

所以我在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");

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

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

我怎么能得到r objectattribute name?还是有任何其他方法可以更好地做到这一点?

标签: javastringobjectenums

解决方案


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

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


推荐阅读