-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