java - 如何将用户的输入与对象的属性进行比较并获取该对象?
问题描述
所以我在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
object
它attribute
name
?还是有任何其他方法可以更好地做到这一点?
解决方案
final List<Place> places = Arrays.asList(r, r2);
final Place selectedPlace = places.stream()
.filter(p -> p.getName().equals(loc))
.findFirst()
.orElse(null);
将 的所有对象存储Place
在列表中并使用流 API。
推荐阅读
- scala - Spark Dataframe Pivot 在透视列中不重叠
- android - Android 11 显示指标
- matlab - 在 MATLAB 中训练 ANFIS 时出现警告
- powershell - 如何使用 powershell 创建包含特定类型文件列表的文本文件?
- python - 如何将命令行选项传递给“烧瓶运行”
- python - 嵌套的 for 循环随着时间的推移变得越来越慢
- powershell - icacls.exe 在 Windows 10 操作系统上无法正常工作
- rust - 如何在我只有一个`syn::buffer::Cursor`的上下文中使用`syn::parse::Parse`(或更一般地说,`ParseBuffer`)?
- batch-file - dos批处理文件中的:PROMPT是什么意思?
- c# - 在 Windows 10 上具有多个虚拟桌面的 C# UI 自动化 API