java如何创建接受符号的构造函数,如:*、+、()等
我试图通过构造函数传递某些类型的字符,比如标题中的字符,然后为其分配枚举
我有一个enum类,它有三个值:NUMBER、STRING和SYMBOL
我有三个构造器:
(float x) {}
(String str){}
(Symbol value) {}
当一个float被传递时,我将一个变量“type”分配给type。一串字符串也是如此,但类型不同。绳子
如何对各种符号(如标题中的符号)执行此操作?当我创建一个Entry实例并尝试传递(比如)一个加号(+)时,我会得到一条消息,“Syntax error on token”+,delete this token”
public class Entry{
private Type type;
public Entry(Type value) {
this.type = Type.SYMBOL;
}
}
# 1 楼答案
在java中
+
是一个operator。它只能用作表达式的一部分,不能单独使用但是,您可以像这样传递包含
+
的字符串:"+"
,或者使用代表不同运算符的枚举:然后您的构造函数可以接受这样的枚举:
另一个选项是创建一个“加法”函数,可以将两个元素相加,并将该函数传递给构造函数。然而,这有点棘手,需要知道你要添加什么类型的东西:
那么构造函数可以是这样的: