Android 在SQLiteQueryBuilder类上应用内部联接时
为什么下面的代码被放置在静态块中Android 在SQLiteQueryBuilder类上应用内部联接时,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,为什么下面的代码被放置在静态块中 private static final SQLiteQueryBuilder sWeatherByLocationSettingQueryBuilder; //static block: static{ sWeatherByLocationSettingQueryBuilder = new SQLiteQueryBuilder(); //This is an inner join which looks like //weather
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);
}
这是
静态块
,在Java中被视为静态构造函数
。它基本上用在你想做一件事的课堂上
例如,初始化static
变量sWeatherByLocationSettingQueryBuilder
。如果没有这个静态块,您应该从类外部初始化静态变量,这通常是不合适的
有关更多信息,您也可以查看此帖子:不清楚您在问什么。你能为你的问题提供一些背景吗?