Jestem nowy zarówno w środowisku Eclipse, jak i Java.Błąd kompilacji w środowisku Eclipse
Zastanawiam się, czy następujący błąd jest w kompilatorze Eclipses lub mojej instalacji.
Zdefiniowałem klasę publiczną w klasie publicznej, aby zdefiniować typ zwracanej metody usługi.
public class ServiceThing {
public class ReturnType {...}
public ReturnType serviceMethod (...) {...}
...
}
W klasie gdzie wywołać metodę service I instatiate się ReturnType trzymać wiadomość domyślnie:
ReturnType returnType = new ReturnType(...);
Kiedy spróbować zbudować to otrzymuję następujące błędy:
budowlane obszar roboczy: Wystąpiły błędy podczas kompilacji. Błędy z uruchomionym konstruktorem 'Java Builder' w projekcie "XXXX.android". java.lang.ArrayIndexOutOfBoundsException
Zapisanie nie powiodło się: Zapisanie nie powiodło się; java.lang.NullPointerException
I okazało się, że wymagane jest składnia:
ServiceThing serviceThing = ...;
ReturnType returnType = serviceThing.new ReturnType(...);
Ale kompilator nie powinien generować NullPointerException tak.
Czy mogę zapytać, dlaczego potrzebujesz klasy publicznej w klasie publicznej? Jeśli jest to publiczne, dlaczego nie uczynić go całkowicie samodzielną klasą. – Gapton
To tylko wyraźne wskazanie intencji klasy. To jest wyłącznie opcja, która może być użyta do zwracania typu zgłoszenia serwisowego. Jeśli umieściłbym go w sparowanym pliku, wydaje mi się, że będzie wyglądał bałaganiaro, ponieważ nie ma własnego życia. – bitestar