Java 检查对象枚举的布尔结果
我正在编写一个使用调车场算法的程序 我在检查令牌是否为数字、运算符、右大括号和左大括号时遇到问题。我在令牌类中有一个正确设置的枚举,但是如果它是一种类型,如何返回布尔检查 从令牌类:Java 检查对象枚举的布尔结果,java,enums,boolean,Java,Enums,Boolean,我正在编写一个使用调车场算法的程序 我在检查令牌是否为数字、运算符、右大括号和左大括号时遇到问题。我在令牌类中有一个正确设置的枚举,但是如果它是一种类型,如何返回布尔检查 从令牌类: enum TokenType { Nothing, Number, Operator, LeftBrace, RightBrace }; 给我带来问题的代码,如果枚举设置为number,我希望它在第一次测试中返回true,在第二次测试中返回false if (inputTokenized[index].g
enum TokenType {
Nothing, Number, Operator, LeftBrace, RightBrace
};
给我带来问题的代码,如果枚举设置为number,我希望它在第一次测试中返回true,在第二次测试中返回false
if (inputTokenized[index].getTokenType().Number) {
//...
} else if(inputTokenized[index].getTokenType().LeftBrace) {
//...
}
看来我明白了
if (inputTokenized[index].getTokenType().Number == Token.TokenType.Number) {
//...
} else if(inputTokenized[index].getTokenType().LeftBrace == Token.TokenType.LeftBrace) {
//...
}
可以将所有逻辑保留在enum类中:
public enum TokenType {
NOTHING, NUMBER, OPERATOR, LEFT_BRACE, RIGHT_BRACE;
public static TokenType getType(char c){
if(Character.isDigit(c))
return NUMBER;
// ... implement other types
else
return NOTHING;
}
}
然后,您可以检查某个字符是否属于某个类型
TokenType.getType('5') == TokenType.NUMBER // true
TokenType.getType('5') == TokenType.LEFT_BRACE // false
你得把它和什么东西比较一下。看起来你自己已经回答了。请关闭该问题或将您的解决方案作为正确答案发布。我不知道您的其余代码的作用,但它似乎应该是:InputOkenized[index]。getTokenType()==Token.TokenType.Number
if (inputTokenized[index].getTokenType().Number == Token.TokenType.Number) {
} else if(inputTokenized[index].getTokenType().LeftBrace == Token.TokenType.LeftBrace) {
}