2016-04-09 4 views
0

以下のコードはなぜ静的ブロックに配置されますか?SQLiteQueryBuilderクラスで内部結合を適用中

private static final SQLiteQueryBuilder sWeatherByLocationSettingQueryBuilder; 

//static block: 
static{ 
    sWeatherByLocationSettingQueryBuilder = new SQLiteQueryBuilder(); 

    //This is an inner join which looks like 
    //weather INNER JOIN location ON weather.location_id = location._id 
    sWeatherByLocationSettingQueryBuilder.setTables(
      WeatherContract.WeatherEntry.TABLE_NAME + " INNER JOIN " + 
        WeatherContract.LocationEntry.TABLE_NAME + 
        " ON " + WeatherContract.WeatherEntry.TABLE_NAME + 
        "." + WeatherContract.WeatherEntry.COLUMN_LOC_KEY + 
        " = " + WeatherContract.LocationEntry.TABLE_NAME + 
        "." + WeatherContract.LocationEntry._ID); 
} 
+0

不明。あなたはあなたの質問にいくつかの文脈を提供できますか? –

+1

http://stackoverflow.com/questions/2943556/static-block-in-java – Krish

答えて

0

これは、Javaでstatic constructorとして扱われるstatic blockあります。基本的には何かしたいクラスで使われます。

たとえば、static変数sWeatherByLocationSettingQueryBuilderを初期化します。この静的ブロックがなければ、クラス外から静的変数を初期化する必要があります。これは通常適切ではありません。あなたも、この記事を見ることができます詳しくは

:あなたが求めているものJava - Can final variables be initialized in static initialization block?

関連する問題