java - 如何在 Java 中创建包含运算符的变量?

我正在尝试为我的类(class)编写一个 30 行或更少的程序( self 挑战)。

程序向用户询问一个简单的加法、除法、乘法或减法问题,然后玩家回答、冲洗并重复 10 次,然后询问玩家是否他们想继续或结束该计划。问题类型(addmult 等)应随机选择。

这样我就不需要使用巨大的 switch case 或 if-else 树,我想知道是否有任何方法可以在变量中包含运算符,然后再使用它。

例子:

var operator = +;
int[] n = {1, 2};
System.out.println(n[0] operator n[1]);

输出为“3”

这是我想要做的事情的一个例子。这可能吗?

最佳答案

不,你不能直接这样做。您必须创建一个代表运算符的类型。

最常见的方法是使用枚举:

enum Operator {
  PLUS {
    @Override int operate(int a, int b) {
      return a + b;
    }
  };

  abstract int operate(int a, int b);
}

Operator operator = Operator.PLUS;
int[] n = {1, 2};
System.out.println(operator.operate(n[0], n[1]));

https://stackoverflow.com/questions/71786776/

相关文章:

node.js - Remix.run 不使用 node.js 作为后端吗?

c# - 使用 EF Core 按 Id 检索实体的通用方法

haskell - 在 Haskell 中日志记录功能的不同实现之间切换的有效方法?

android - 我无法将 Android 项目从 Delphi 10.4 迁移到 Delphi

c - 在格式控制字符串中使用消息

python - 将列表附加到现有数据框

python - `__ge__` 在 dict.values() 上使用时失败

java - 如何使用 Collectors.collectionAndThen 和 Collect

c++ - 临时初始化和引用初始化

authentication - 是 CQRS 中的登录/注册命令或查询