-1
我剛從Xamarin/C#切換到Android Studio/Java,並熟悉兩種語言之間的差異。我在讀java寫的一個機器人的書,偶然發現的代碼如下兩行:兩個(簡單?)Android/Java語法問題
1)
PreferenceManager.getDefaultSharedPreferences(this)
.registerOnSharedPreferenceChangeListener(preferencesChangeListener);
在第一行,我對preferencesChangeListener如何使用混淆。在C#中,你不能僅僅將一個新的preferencesChangeListener對象拋到一個參數中而不需要實例化對象。所以在Java中,你允許隱式實例化嗎?
2)
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
其次,我對這裏使用的 '&' 符號混淆。我認爲&符號用於布爾參數,但您在這裏看到,等號的左邊等於一個整數。這裏發生了什麼?
'preferencesChangeListener'必須在該方法調用時可用的某個範圍內聲明。在處理數字時,'&'是Java中按位與運算符 – Kon
它看起來像'preferenceChangeListener'是對對象實例的變量引用。有沒有事先聲明? 'PreferenceChangeListener preferenceChangeListener = new PreferenceChangeListener()'或類似的東西? – gmiley
@Kon你的意思是按位,&&是邏輯AND運算符 – Natecat