1. 程式人生 > >關於java靜態方法裡只能呼叫靜態變數的思考

關於java靜態方法裡只能呼叫靜態變數的思考

最近一段時間裡面寫了這樣一個類:

public class DBManager {
    private static MySqliteHelper helper;
    public static MySqliteHelper getHelper(Context context){
        if (helper == null){
            helper = new MySqliteHelper(context);
        }
        return helper;
    }

    public static void execSql(SQLiteDatabase db,String sql){
        if 
(db != null){ if (sql != null && !"".equals(sql)){ db.execSQL(sql); } } } }
private static MySqliteHelper helper;
一開始上面這行程式碼我並沒有加static修飾,然後工具就報錯了。
下面仔細分析一下原因:靜態變數和靜態方法屬於整個類的共享,不管這個類有沒有例項化出物件均可以呼叫。
而非靜態變數的引用必須先初始化物件。
"".equals(sql)
另外,上面一行程式碼這樣寫可以避免空指標異常。