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) {

    }