为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建接受符号的构造函数,例如:*、+、() 等

如何创建接受符号的构造函数,例如:*、+、() 等

湖上湖 2023-11-01 21:58:19
我试图通过构造函数传递某些类型的字符(例如标题中的字符),然后为其分配一个枚举。我有一个具有三个值的枚举类:NUMBER、STRING 和 SYMBOL。我有三个构造函数:(float x) {}(String str){}(Symbol value) {}当传递浮点数时,我将变量“type”分配给 Type.STRING。对于字符串也是如此,但是对于 Type.STRING。如何对各种符号(例如标题中的符号)执行此操作?当我创建 Entry 实例并尝试传递加号字符 (+) 时,我收到消息“标记“+”上存在语法错误,请删除此标记”。public class Entry{    private Type type;    public Entry(Type value) {        this.type = Type.SYMBOL;    }}
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

在java中+是一个运算符。它只能用作表达式的一部分,不能单独使用。

+但是,您可以传递包含如下内容的字符串:"+"或使用代表不同运算符的枚举:

enum Operator {
    PLUS, MINUS;
}

然后你的构造函数可以接受这样的枚举:

public Entry(Operator op) {
}

另一种选择是创建一个“加法”函数,可以将两个元素加在一起,并将该函数传递给构造函数。然而,这有点棘手,需要知道你要添加什么类型的东西:

BiFunction<MyObject, MyObject, MyObject> addition =  (a,b) -> {
    //implement a+b here;
    //return result;
    }

那么构造函数可能是这样的:

public Entry(BiFunction<MyObject, MyObject, MyObject> func) {
}


查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信