我可以将函数名称存储在最终的哈希图中以供执行吗?

2023-12-23

我正在构建一个管理控制器,其工作方式类似于 Flex 4.5 中的终端模拟器。 服务器端是Tomcat服务器上的Red5,使用Java编程语言。

当用户在其文本输入中输入命令时,该命令会发送到 red5,在 red5 中,我检查该命令是否存在,如果命令或参数不匹配,则返回正确的输出或错误。

所以现在我用if (command.equals("..") {} else if (command.equals(...

有没有办法存储函数名称或对每个命令中应执行的函数的引用并执行它?

example:

// creating the hasmap
HashMap<String,Object> myfunc = new HashMap<String,Object>();

// adding function reference
myfunc.put("help",executeHelp);

or....

myfunc.put("help", "executeHelp"); // writing the name of the function

and then

void receiveCommand(String command, Object params[]( {
 myfunc.get(command).<somehow execute the referrened function or string name ? >
}

有任何想法吗?

谢谢你!


您可以使用反射,但我建议使用更简单的方法。

您可以使用抽象方法执行创建抽象类或接口。例子:

interface Command {
    void execute(Object params[]);
}

class Help implements Command {
    void execute(Object params[]) {
        // do the stuff
    }
}

现在你的哈希图可以是:

// creating the hasmap
HashMap<String,Command> myfunc = new HashMap<String,Command>();

// adding function reference
myfunc.put("help", new Help());

进而:

void receiveCommand(String command, Object params[]) {
    myfunc.get(command).execute(params);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将函数名称存储在最终的哈希图中以供执行吗? 的相关文章

随机推荐

  • 布局鼓励意外点击 - 插页式广告:

    请任何人帮忙现在我的应用程序已被 admob 禁用 因为错误的插页式代码 当用户查看内容时意外加载插页式广告 应用程序的内容 该怎么办 请有人纠正我 import android os Bundle import android view
  • 在不同的 div 中继续溢出文本?

    我想做的是创建一个网站 以假字母的形式显示我的咆哮 我希望固定 纸张大小 div 大小 并且文本继续显示在第一张纸下方显示的第二张纸 第二个 div 上 如下所示 抱歉 作为新用户 我不被允许发帖 我创建的屏幕截图是为了帮助解释我的情况 所
  • 一些 Bootstrap3 字形在phonegap android webview 上无法正确显示

    请看一下附上这个截图 https dl dropboxusercontent com u 53674497 Screenshot 2013 10 17 10 43 09 png 这是我的 PhoneGap 测试应用程序 在 Galaxy S
  • Woocommerce 3.3 管理订单列表中的自定义订单状态背景按钮颜色

    在新的 woo 订单屏幕中 旧的彩色状态图标现已消失 取而代之的是带有彩色背景的大状态按钮 处理中为绿色 已完成为蓝色 已取消为灰色等 我在 woocommerce 订单中有一个自定义订单状态 名为 进行中 自定义订单状态似乎也只给出了默认
  • 为 Tensorflow 模型选择损失和指标

    我正在尝试使用预训练的方法进行迁移学习Xception具有新添加的分类器的模型 这是模型 base model keras applications Xception weights imagenet input shape 224 224
  • Django InlineModelAdmin:部分显示内联模型并链接到完整模型

    我定义了几个模型 Journals volumes volume scanInfo 等 一个日志可以有更多的卷 一个卷可以有更多的 scanInfo 我想做的是 在期刊的管理页面中 我想要内嵌卷列表 已完成 将上一个列表的每个卷连接到其管理
  • 传递比实际更小的数组

    在下面的代码中 我声明了一个数组mass有 20 个元素 当传递给子程序时foo foo被告知mass只有 10 个元素 但是 我仍然可以访问第 20 个元素 我的问题是 为什么我可以将数组传递给子例程并告诉子例程错误的数组大小 为什么我仍
  • 如何在 Flask 中向会话添加多个项目

    我在我的网站上创建了一个 添加到购物车 效果非常好 我正在使用Jquery getJSON要发出获取所选产品价值的请求 代码如下 function a process menu bind click function var amount
  • 为什么编译器坚持在这里使用被调用者保存的寄存器?

    考虑这个 C 代码 void foo void long bar long x foo return x 当我在 GCC 9 3 上编译它时 O3 or Os 我明白了 bar push r12 mov r12 rdi call foo m
  • 任何文本选项中的文本模糊

    例如 单击没有处理程序的按钮 即没有任何反应接受按钮单击动画 后 我的眼睛会出现这种丑陋的效果 按钮上的文本模糊在一秒钟内消失 从第一张图片到第二张图片 依此类推到清晰度 然后文本变得清晰度 我对 XAML 中的 TextOptions 选
  • 具有多个列表的 for 循环

    我在 terraform 中有 2 个变量列表 需要使用两个列表并创建资源 我拥有的 locals bucket name SRE Engg QA access type Private Public resource oci object
  • 逗号语法:语句中悬挂逗号背后的基本原理是 SyntaxError

    在 Python 中 变量或文字后跟一个悬挂逗号是一个 tuple 1 1 以及一系列逗号分隔的变量 文字 无论它们后面是否带有悬挂逗号 也是一个tuple 1 2 1 2 1 2 1 2 然而 在可调用 函数内部 这种语法的处理方式有所不
  • 谷歌应用程序引擎中的数据库设计

    我正在设计一个基于待办事项列表的简单项目 这个想法是以等级方式定义项目下的任务 没有工作流程 只需 任务已完成 或不需要 即每个任务都有多个任务 并且该任务可能有其他多个任务 如果该项目下的所有任务都已完成 则可以说该项目已完成 我曾想过使
  • PHP - 相互比较多维子数组并根据相似度阈值进行合并

    简介 此问题已于 2018 年 5 月 27 日更新 我有 1PHP多维数组 包含6个子数组 每个子数组包含20个子子数组 每个子数组又包含2个子子数组 一个是字符串 header 另一个是未指定数量的关键字 keywords 我希望将 1
  • Java工厂方法缓存

    我必须开发一些类似生活游戏的东西 为此 我有一个名为CellPosition具有x and y字段 为了有效地使用内存 我想使用某种工厂方法 CellPosition at int x int y 这将返回一个实例CellPosition
  • 无法加载插件 caching_sha2_password:/mariadb19/plugin/caching_sha2_password.so:无法打开共享对象文件

    我正在尝试 dockerise 我的 Django 应用程序 docker compose yml version 3 8 services db image mysql 8 command default authentication p
  • WPF如何让UserControl继承Button?

    我创建了一个由几个省略号和标签组成的用户控件 我把它很好地添加到另一种形式中 事情看起来非常时髦 然后我开始添加一些事件处理程序 发现我制作的控件没有公开 Click 事件 哎呀 很容易修复 对吧 只需回到我制作的 UserControl
  • Eclipse:自动终止(java)

    当我在Eclipse中用java编写代码并第二次运行它时 第一个进程仍在运行 例如 当我编写一个带有一些打印的无限循环时 运行一次然后再次运行 它会从第一次和第二次运行中打印 另外 Eclipse 变得越来越慢 有没有办法在重新运行时自动终
  • 如何在一个 Github Actions Docker 中运行多个命令

    在一个命令中运行多个命令的正确方法是什么action 例如 我想运行一个 python 脚本action 在运行此脚本之前 我需要安装requirements txt 我可以想到几个选择 创建一个Dockerfile用命令RUN pip i
  • 我可以将函数名称存储在最终的哈希图中以供执行吗?

    我正在构建一个管理控制器 其工作方式类似于 Flex 4 5 中的终端模拟器 服务器端是Tomcat服务器上的Red5 使用Java编程语言 当用户在其文本输入中输入命令时 该命令会发送到 red5 在 red5 中 我检查该命令是否存在