Java 这个怎么改有帮助嘛

img

报错了 ,请教一下怎么改? Operator '!=' cannot be applied to 'java.lang.Object', 'char' 有人会嘛?



```java

public class Exercise05 {
    public static void main(String[] args) {
        // 3. 括号匹配问题
        // 实现judgeBracket(str)方法来判断括号匹配

        String str="public class  Ex2 { {public static void main(String[] args){}}";
        boolean bool=judgeBracket(str);

        System.out.println(bool);

    }

    // 判断括号是否匹配
    private static boolean judgeBracket(String str) {

        MyArrayStack<Object> stack=new MyArrayStack<>();

        for (int i=0; i < str.length(); i++) {
            char charAt=str.charAt(i);

            if ( charAt=='{' ) {
                stack.push('}');
            } else if ( charAt=='(' ) {
                stack.push(')');
            } else if ( charAt=='[' ) {
                stack.push(']');
            } else if ( charAt==']' || charAt=='}' || charAt==')' ) {

                if ( stack.isEmpty() ) return false;

                Object pop=stack.pop();
                if ( pop !=charAt) return false;
            }
        }

        //
        return stack.isEmpty();

    }

    private static
    char getCharAt(char charAt) {
        return charAt;
    }

}

```

这个报错的原因是因为pop是对象类型,而charAt是char类型,两个类型不同的元素,无法通过!=进行比较。
比较简单的改法可以把35行

Object pop=stack.pop();

改成

Character pop=(Character)stack.pop();