2016-04-09 5 views
0

Warum wird der folgende Code in einem statischen Block platziert?Beim Anwenden des inneren Joins in der SQLiteQueryBuilder-Klasse

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

Unklar, was Sie fordern. Könnten Sie Ihrer Frage einen Kontext geben? –

+1

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

Antwort

0

Dies ist static block die als static constructor in Java behandelt wird. Es wird hauptsächlich in Klassen verwendet, in denen Sie einmal etwas tun möchten.

Zum Beispiel Initialisierung static Variable sWeatherByLocationSettingQueryBuilder. Ohne diesen statischen Block sollten Sie Ihre statischen Variablen von außerhalb der Klasse initialisieren, was normalerweise nicht geeignet ist.

Für weitere Informationen, die Sie auch diesen Beitrag sehen können: Java - Can final variables be initialized in static initialization block?

Verwandte Themen