2009-09-27 12 views
19

pracuję nad projektem szkolnym w Eclipse, a kiedy spróbować użyć metody isEmpty() na String, Eclipse pojawia się następujący błąd:Java isEmpty() undefined dla String?

The method isEmpty() is undefined for the type String

Zabrakło mi aktualizacje Javy, ale jestem wciąż go otrzymuję. Czy jest jakiś powód, dla którego ta metoda byłaby niezdefiniowana?

+1

Czy korzystasz z Java 6? – Zed

+0

To może pomóc - dzięki http://www.buggybread.com/2012/11/error-method-contains-methodname.html –

Odpowiedz

31

String.isEmpty() został dodany w Java 6. W starszych wersjach można użyć biblioteki StringUtils.isEmpty(String) z biblioteki .

Aby skonfigurować środowisko Eclipse do używania środowiska JRE 1.6, przejdź do okna-> Preferencje-> Java-> Zainstalowane środowiska JRE. Jeśli nie masz jeszcze skonfigurowanego JAva 1.6, wybierz opcję Dodaj ..., przejdź do instalacji 1.6 i dodaj ją.

installed JREs screenshot

configure JREs screenshot http://www.lumidant.com/blog/wp-content/uploads/2008/01/eclipse_edit_jre.png

+4

Ponieważ jest to pytanie początkujące, być może należy wyraźnie zaznaczyć, że klasa StringUtils pochodzi z zewnętrznej biblioteki open source, Apache Commons Lang (http://commons.apache.org/lang/) – Jonik

+0

@ Jonik , dobra uwaga, dodała –

+0

dzięki chłopaki, działa. –

8

String.isEmpty() został wprowadzony w wersji Java 1.6. Możesz sprawdzić, jakiej wersji JDK używasz do swojego projektu. (Sam nie wiem zbyt wiele o Eclipse, ale powinno to być gdzieś w ustawieniach projektu.)

+0

świetnie, dzięki! Właśnie obejrzałem i mam 1.5, mimo że uruchomiłem ostatnią aktualizację java OSX, która ma zaktualizować do wersji Java SE 6 1.6.0_05. –

+0

Sprawdź, czy możesz dodać 1.6 do "Zainstalowanych JRE" Ecplise'a, jak pokazano w odpowiedzi Rich'a sprzedającego :) – Jonik

+0

@Aaron musisz ręcznie zmienić sym-link 'CurrentJDK' (umieszczony w'/System/Library/Frameworks/JavaVM.framework/Versions'), aby wskazać 1.6 zamiast 1.5, jeśli chcesz 1.6 jako domyślny JDK. –

13

Jeśli nie jesteś w Javie 6, String.length() == 0 zwróci taki sam wynik jak String.isEmpty().