I have two classes,
SymString.java
import java.lang.StringBuffer;
public class SymString {
    private String str;
    private int temp = 0, flag = 0;
    public SymString(String paraStr) {
        str = paraStr;
    }
    StringBuffer strBuffer = new StringBuffer(str);
    public int getLength() {
        return (strBuffer.length());
    }
    public boolean isSymStr() {
        for (temp = 0; temp <= getLength(); temp++) {
            if (strBuffer.charAt(temp) == strBuffer.charAt(getLength() - (temp + 1))) {
                flag++;
            }
        }
        if (flag == getLength()) {
            return true;
        } else {
            return false;
        }
    }
    public boolean isSymStr2() {
        if (strBuffer.reverse().equals(strBuffer)) {
            return true;
        } else {
            return false;
        }
    }
}
TestSymStr.java
class TestSymStr {
    public static void main(String[] args) {
        SymString Test1 = new SymString("lmfao let's try it out.");
        System.out.println("Is the string symmetric?");
        System.out.println(Test1.isSymStr2());
        System.out.println(Test1.isSymStr());
    }
}
and it just throws the exception, seems like the str has not be assigned. Why?
Exception in thread "main" java.lang.NullPointerException
    at java.lang.StringBuffer.<init>(StringBuffer.java:139)
    at SymString.<init>(SymString.java:13)
    at TestSymStr.main(TestSymStr.java:5)
 
     
    