Diskuze: Přechod na NetBeans
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Jedním z možných řešení je použít Apache Maven. Eclipse i Netbeans obsahují pluginy, které Maven podporují.
Jakou chybu to hlásí?
Ještě k mojí první otázce: Dají se projekty z Eclipse nějak převést do NetBeans, aby se daly editovat zdrojové kódy? Nebo s tím, co jsem vytvořil v Eclipse, musím pracovat jen v Eclipse?
Co se týče těch chyb:
Když v Eclipse sc.close() není, tak to hlásí: Resource leak: 'sc' is never
closed. A když v NetBeans sc.close() je, tak to hlásí: Convert to
try-with-resources.
V Netbeans je možnost importu Eclipse projectu, najdeš to ve File | Import Project
'Convert to try-with-resources' není hlášení o chybě ale návrh Netbeans použít danou konstrukci. Try-with-resources automaticky zavírá otevřené resources, takže close() pak není potřeba.
Položím doplňující otázku, k čemu je tedy ta metoda
close()? Moc mi nejde do hlavy, proč v NetBeans to být
nemusí a v Eclipse ano. V každém případě bez této metody to funguje
stejně nebo se pletu? Díky za odpověď.
Metoda close() v tomto kontextu slouží k uzavření nějaké prostředku, v tomto případě Scanneru. Představ si to jako soubor, který po práci prostě zavřeš aby tam 'někde' nezůstal jen tak otevřený. Nevím, kde jsi vzal, že v Netbeans close() být nemusí a v Eclipse jo, to jsi něco špatně pochopil, není rozdíl mezi Javou v Netbeans a v Eclipse, v obou IDE platí v Javě stejná pravidla. Metoda close() by se měla použít vždy když skončíš práci s nějakým prostředkem.
V Javě 7 přibyla do jazyka nová konstrukce tzv. try-with-resources, která se vyznačuje tím, že v bloku try se definuje prostředek (resource) s tím se pak dále pracuje a po skončení práce není potřeba explicitně volat metodu close(), jelikož se o to postará právě ta konstrukce try-with-resources. Takže ten příklad z prvního příspěvku by vypadal takto:
try (Scanner sc = new Scanner(System.in, "UTF-8")) {
String s = sc.nextLine();
System.out.println(s);
//tady není sc.close(), protože jsme použili try-with-resources konstrukci a tudíž není potřeba
}
Já jsem jen špatně položil dotaz. Ten problém byl, že Eclipse
upozorní na tuto metodu a NetBeans ne. Každopádně díky za odpověď.
Zobrazeno 9 zpráv z 9.