Ich bin gerade von Xamarin/C# zu Android Studio/Java gewechselt und mache mich mit den Unähnlichkeiten zwischen den beiden Sprachen vertraut. Ich lese ein Android-Buch in Java geschrieben und kam in den beiden folgenden Codezeilen:Zwei (leicht?) Fragen zur Android/Java-Syntax
1)
PreferenceManager.getDefaultSharedPreferences(this)
.registerOnSharedPreferenceChangeListener(preferencesChangeListener);
In der ersten Zeile, ich bin verwirrt, wie preferencesChangeListener verwendet wird. In C# können Sie nicht einfach ein neues preferencesChangeListener-Objekt in ein Argument einfügen, ohne das Objekt zu instanziieren. Also, in Java, darfst du implizit instanziieren?
2)
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
Zweitens bin ich von der '&' Symbol hier verwendet verwirrt. Ich dachte, das Ampersand wurde für boolesche Argumente verwendet, aber Sie sehen hier, dass die linke Seite der Gleichheit eine Ganzzahl erwartet. Was ist denn hier los?
'preferencesChangeListener' müsste in einem zum Zeitpunkt dieses Methodenaufrufs verfügbaren Umfang deklariert werden. Das '&' ist ein bitweiser AND-Operator in Java, wenn man an Zahlen arbeitet. – Kon
Es sieht so aus als wäre 'preferenceChangeListener' ein Variablenverweis auf eine Objektinstanz. Gibt es keine vorherige Erklärung? 'PreferenceChangeListener preferenceChangeListener = new PreferenceChangeListener()' oder etwas ähnliches? – gmiley
@Kon Sie meinen bitweise, && ist der logische UND-Operator – Natecat