我刚从Xamarin / C#切换到Android Studio / Java,并熟悉两种语言之间的差异。我正在阅读一本用java编写的安卓书,并且遇到了以下两行代码:
1)
PreferenceManager.getDefaultSharedPreferences(this)
.registerOnSharedPreferenceChangeListener(preferencesChangeListener);
在第一行中,我对preferencesChangeListener的使用方式感到困惑。在C#中,您无法在不实例化对象的情况下将新的preferencesChangeListener对象抛出到参数中。那么在Java中,你是否允许隐式实例化?
2)
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
其次,我很担心'&'这里使用的符号。我认为&符号用于布尔参数,但你在这里看到等式的左边是期望一个整数。这里发生了什么?
答案 0 :(得分:2)
expr(A," is greater than ",B) -->
symbol(A)," is greater than ",symbol(B).
,除非你调用它的方法是将它用作输出NullPointerException
是布尔运算符,&&
是按位运算符。 &
是按位AND,因此例如&
将为(0101) & (1110)
。在您的示例中,它用于将某些位清零。