Tworzenie klasy lub typu Java

Android Studio pomaga szybko tworzyć te nowe klasy i typy za pomocą okna Utwórz nową klasę i szablonów plików:

  • klasy Java,
  • klasy wyliczeniowe i klasy singleton,
  • typy interfejsów i adnotacji.

Gdy wypełnisz pola w oknie Utwórz nową klasę i klikniesz OK, Android Studio utworzy plik .java zawierający kod szkieletowy, w tym instrukcję pakietu, wszystkie niezbędne importy, nagłówek oraz deklarację klasy lub typu. Następnie możesz dodać do tego pliku swój kod.

Szablony plików określają, jak Android Studio generuje kod szkieletowy. Możesz używać szablonów plików dostarczonych z Android Studio w niezmienionej postaci lub dostosować je do swojego procesu tworzenia.

Wyświetlanie i dostosowywanie szablonów plików

Android Studio udostępnia szablony plików, które określają, jak tworzone są nowe klasy i typy Java za pomocą okna Utwórz nową klasę. Możesz dostosować te szablony.

Okno Tworzenie nowych zajęć.

Rysunek 1. Okno Utwórz nowe zajęcia.

Szablony plików Android Studio zawierają kod i zmienne Velocity Template Language (VTL) które obsługują te dodatkowe opcje. Okno Utwórz nową klasę używa szablonów plików AnnotationType, Class, Enum, Interface i Singleton.

Aby wyświetlić szablony, znaleźć dostosowania i zmodyfikować szablony, wykonaj te czynności:

  1. Wykonaj jedną z tych czynności:

    • W systemie Windows lub Linux wybierz Plik > Ustawienia > Edytor > Szablony plików i kodu > Pliki.
    • W systemie macOS wybierz Android Studio > Ustawienia > Edytor > Szablony plików i kodu > Pliki.

    Na liście szablonów, wewnętrzne nazwy szablonów są pogrubione. Nazwy dostosowanych szablonów są wyświetlane w kolorze wyróżnienia, np. niebieskim.

  2. W razie potrzeby dostosuj szablony plików.

    Jeśli chcesz używać pól w oknie Utwórz nową klasę , upewnij się, że twoje zmiany są zgodne z kodem szablonu pliku Android Studio.

Więcej informacji o szablonach plików, w tym o VTL, znajdziesz w artykułach Szablony plików i kodu oraz Okno Szablony plików i kodu.

Tworzenie klasy lub typu Java

Android Studio pomaga tworzyć nowe klasy Java, klasy wyliczeniowe i klasy singleton klasy oraz typy interfejsów i adnotacji na podstawie szablonów plików.

Aby utworzyć nową klasę lub typ Java:

  1. W oknie Projekt kliknij prawym przyciskiem myszy plik lub folder Java i wybierz Nowy > Klasa Java.
  2. Możesz też wybrać plik lub folder Java w oknie Projekt albo kliknąć plik Java w edytorze kodu. Następnie wybierz Plik > Nowy > Klasa Java.

    Wybrany element określa domyślny pakiet dla nowej klasy lub typu.

  3. W oknie Utwórz nową klasę wypełnij pola:
    • Nazwa – nazwa nowej klasy lub typu. Musi być zgodna z wymaganiami dotyczącymi nazw w języku Java. Nie wpisuj rozszerzenia nazwy pliku.
    • Rodzaj – wybierz kategorię klasy lub typu.
    • Nadklasa – klasa, z której dziedziczy nowa klasa. Możesz wpisać nazwę pakietu i klasy lub tylko nazwę klasy, a następnie kliknąć dwukrotnie element na liście, aby go autouzupełnić.
    • Interfejsy – co najmniej 1 interfejs, który implementuje nowa klasa lub typ. Poszczególne interfejsy należy oddzielać przecinkiem, po którym może występować spacja. Możesz wpisać nazwę pakietu i interfejsu lub tylko nazwę interfejsu, a następnie kliknąć dwukrotnie element na liście, aby go autouzupełnić.
    • Autouzupełnianie działa tylko w przypadku pierwszej nazwy interfejsu. Pamiętaj, że podczas gdy przecinek i następująca po nim nazwa interfejsu mogą powodować wyświetlanie dymku z błędem, możesz zignorować błąd, ponieważ nie wpływa on na wygenerowany kod.

    • Pakiet – pakiet, w którym będzie się znajdować klasa lub typ. W polu automatycznie pojawi się wartość domyślna. Jeśli w polu wpiszesz nazwę pakietu, wszystkie części identyfikatora pakietu, które nie istnieją, zostaną wyróżnione na czerwono. W takim przypadku Android Studio utworzy pakiet po kliknięciu OK. To pole musi zawierać wartość. W przeciwnym razie plik Java nie będzie zawierać instrukcji package, a klasa lub typ nie zostanie umieszczona w pakiecie w projekcie.
    • Wartość domyślna zależy od sposobu uruchomienia okna Utwórz nową klasę. Jeśli najpierw wybierzesz plik lub folder Java w oknie Projekt, wartością domyślną będzie pakiet wybranego elementu. Jeśli najpierw klikniesz plik Java w edytorze kodu, wartością domyślną będzie pakiet zawierający ten plik.

    • Widoczność – wybierz, czy klasa lub typ ma być widoczny dla wszystkich klas, czy tylko dla tych w swoim pakiecie.
    • Modyfikatory – wybierz modyfikator Abstract lub Final dla klasy albo nie wybieraj żadnego.
    • Pokaż okno Wybierz metody do zastąpienia – w przypadku rodzaju Klasa zaznacz tę opcję, aby po kliknięciu OK otworzyć okno Wybierz metody do zastąpienia/zaimplementowania. W tym oknie możesz wybrać metody, które chcesz zastąpić lub zaimplementować, a Android Studio wygeneruje dla nich kod szkieletowy.

    Wszystkie pola, które nie mają zastosowania do rodzaju , są ukryte.

  4. Kliknij OK.
  5. Android Studio utworzy plik Java z kodem szkieletowym, który możesz zmodyfikować. Otworzy plik w edytorze kodu.

Uwaga: klasę singleton możesz utworzyć, wybierając Plik > Nowy > Singleton lub Plik > Nowy > Klasa Java; ta druga metoda oferuje więcej opcji.

Szablony plików Android Studio

W tej sekcji znajdziesz kod szablonu pliku Android Studio napisany w języku skryptowym VTL oraz definicje zmiennych. Wartości podane w oknie Utwórz nową klasę stają się wartościami zmiennych w szablonie. Pamiętaj, że wiersze zaczynające się od #if (${VISIBILITY} rozciągają się aż do nawiasu otwierającego ( { ).

Szablon pliku AnnotationType

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end {
}

Szablon pliku Class

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Szablon pliku Enum

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Szablon pliku Interface

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
#end {
}

Szablon pliku Singleton

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
    private static final ${NAME} ourInstance = new ${NAME}();

    #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() {
        return ourInstance;
    }

    private ${NAME}() {
    }
}

Zmienne szablonu pliku

Android Studio zastępuje zmienne szablonu pliku wartościami w wygenerowanym pliku Java. Wartości wpisujesz w oknie Utwórz nową klasę. Szablon zawiera te zmienne, których możesz używać:

  • IMPORT_BLOCK – lista instrukcji Java import rozdzielonych znakami nowego wiersza, które są niezbędne do obsługi nadklasy lub interfejsów, albo pusty ciąg znaków (""). Jeśli na przykład implementujesz tylko interfejs Runnable i nie rozszerzasz niczego, ta zmienna będzie mieć wartość "import java.lang.Runnable;\n". Jeśli implementujesz interfejs Runnable i rozszerzasz klasę Activity, będzie to "import android.app.Activity;\nimportjava.lang.Runnable;\n".
  • VISIBILITY – określa, czy zajęcia będą mieć dostęp publiczny. Może mieć wartość PUBLIC lub PACKAGE_PRIVATE.
  • SUPERCLASS – nazwa pojedynczych zajęć lub pusta. Jeśli jest obecna, po nazwie nowej klasy pojawi się klauzula extends ${SUPERCLASS}.
  • INTERFACES – lista interfejsów rozdzielonych przecinkami lub pusta. Jeśli jest obecna, po nadklasie lub po nazwie klasy (jeśli nie ma nadklasy) pojawi się klauzula implements ${INTERFACES}. W przypadku interfejsów i typów adnotacji interfejsy mają słowo kluczowe extends.
  • ABSTRACT – określa, czy klasa ma być abstrakcyjna. Może mieć wartość TRUE lub FALSE.
  • FINAL – określa, czy klasa ma być ostateczna. Może mieć wartość TRUE lub FALSE.