java - 解析大量命令的最智能方法?

标签 java

对于一项作业,我需要创建一个基本处理器,可以使用简单的函数,例如 ADD、SUB、LOAD、STORE 和 JUMP

作为输入,我必须使用文本文件,解析 20 个不同的命令,然后执行它们。

我的问题是如何最好地解析字符串,将它们与相应的命令匹配然后执行它们?

例如,我可以逐行解析文件,标记字符串,通过包含所有命令的大量 if-else 语句发送标记,然后通过为每个命令创建一个类(事先)来调用命令,然后执行该类。

但我认为这不是最好的方法。有没有更好的方法或者我可以改进我的示例中的某些内容?

最佳答案

将命令作为接口(interface)并将其映射到String

interface Command{
    void execute();
}

Map<String, Command> map = new HashMap<>();

接下来相应地映射命令的所有实现:

map.put("ADD", () -> System.out.println("Calling Add"));

然后,一旦您对线路进行标记,只需搜索 map 并执行命令,并且不要忘记检查命令是否存在。

for (String token : tokens){
      map.getOrDefault(token, () -> System.out.println("Command " + token + " not found")).execute();
}

关于java - 解析大量命令的最智能方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56065933/

相关文章:

Java Cassandra 异常 timeuuid

java - apache通用配置文件放在哪里

Java - 固定大小列表和指定初始容量的列表之间的差异

java - 如何在 NetBeans 10/JDK11 上启用 JavaFX

java - UUID.fromString(var) 接受 Java 中的附加字符

java - hibernate 和 jpa 怪异;意外的懒惰获取

java - 无法在 Java 中使用 cachingHttpClient 缓存 HttpResponse?

java - 用于删除 Java 应用程序当前文本字段中的条目的 SQL 命令

java - 计算一个有 400 个方 block 和 50 个物体的世界中至少出现 2 个重复的概率? java

java - 由 : org. hibernate.PropertyNotFoundException 引起:无法在类上找到字段名称