如果声明错误?

shd*_*hdw 1 java if-statement arraylist

public void decompressTo(String fileName) throws IOException {

    for (int i = 0; i < fileArray.size(); i++) {
        if (fileArray.get(i) == new Character((char) 7)) {
            //do stuff
    }
    else {
        //do other stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我的if语句永远不会被执行,相反,for循环总是跳转到else语句.

但是,fileArray我正在读取的ArrayList 肯定包含铃声字符(ASCII字符#7).我已声明fileArray如下:ArrayList <Character> fileArray = new ArrayList <Character> ();.

Cub*_*bic 5

==是java中的引用相等(检查两个引用是否引用同一个对象,而不是两个相等的引用).请fileArray.get(i).equals(...)改用.