W poniższym kodzie pole 1 nie ma modyfikatora: public / protected / private
public class class1 {
String field1;
}
Więc jaki jest modyfikator pola 1?
W definicji modyfikatora w Javie są to wszystkie modyfikatory istotne dla pola:
Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE |
Modifier.STATIC | Modifier.FINAL | Modifier.TRANSIENT |
Modifier.VOLATILE;
Który z modyfikatorów ma pole 1? Czuję, że nie ma żadnego z Modifier.PUBLIC, Modifier.PROTECTED i Modifier.PRIVATE
Pytam o to, ponieważ chcę uzyskać dostęp do tego pola poprzez odbicie w Javie.
Dzięki. Za odpowiedzi.
W rzeczywistości nie ma modyfikatora.
Przetestowałem getModifiers () dla field1. Zwraca 0.
Dzięki.
Odpowiedzi:
3 dla odpowiedzi № 1Nie ma modyfikatora. Więcej szczegółów na temat tego braku modyfikatora można znaleźć tutaj:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
1 dla odpowiedzi nr 2
Jego modyfikator jest znany jako default
. Jest to każdy modyfikator zmiennej / funkcji, który nie mówi jednoznacznie o żadnym innym modyfikatorze.
0 dla odpowiedzi № 3
Nie ma żadnych modyfikatorów. Możesz uzyskać dostęp do pola z klasy, pakietu, ale nie z podklasy lub innej paczki.
0 dla odpowiedzi nr 4
Dawka ma modyfikator - domyślnie, co zawsze jest implikowane. Pole lub metoda zmodyfikowana domyślnie jest dostępna dla klas, które mają ten sam pakiet z polem lub metodą.