Diskuze: Scanner a try-with-resources

Java Java Scanner a try-with-resources

Avatar
Benjibs
Člen
Avatar
Benjibs:

Je vhodné používať TWR napríklad pri volaní next() zo Scanneru?
Výhodou síce je, že nemusím písať metodu close(), ale záse hádzať celý blok kodu to try (alebo robit viac menších blokov try)...

Odpovědět 4.7.2013 14:12
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Připadá mi to jako dobrý nápad. Jen ti to nebude fungovat na < 1.7

Nahoru Odpovědět 4.7.2013 14:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Mám dojem, že zavírat konzoli není nutné. Už jen nutná přítomnost dalšího objektu pro tak banální operaci jako čtení z konzole se Javě moc nepovedla.

Nahoru Odpovědět 4.7.2013 14:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Homo
Člen
Avatar
Odpovídá na David Čápka
Homo:

Scanner neslouzi jen pro konzoli.

Nahoru Odpovědět 4.7.2013 14:58
1010011 1000101 1011000
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Právě naopak. Čím méně defaultních objektů, tím menší aplikace a tím víc podporovaných zařízení. Mnoho zařízení konzoli vůbec nemá, proč by mělo mít pro ni podporu?

Nahoru Odpovědět 4.7.2013 15:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

K zajímavé situaci dojde, pokud uživatel aplikace zavře konzoli a aplikace chce od toho uživatele další data. V takových případech je dobré, aby aplikace měla možnost tu konzoli opět otevřít. Bylo by však nevhodné ji mít otevřenou vícekrát.

Nahoru Odpovědět 4.7.2013 15:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Ano a proto má díky kávovarům sečtení 2 čísel 20 řádků :)

Nahoru Odpovědět 4.7.2013 16:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

C# na tom není lépe.

Nahoru Odpovědět 4.7.2013 16:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Když k tomu uděláš "kvalitní" dokumentaci, tak i 50 :)

Nahoru Odpovědět 4.7.2013 16:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

Načo mi je "kvalitná" dokumentácia k sčítaniu dvoch čísel? :D

Nahoru Odpovědět 4.7.2013 16:37
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Ale je, má Console.ReadLine a hlavně tě nenutí odchytávat výjimky, což jsem v Javě nikdy nepochopil.

Nahoru Odpovědět 4.7.2013 16:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Podle mne je to užitečná vlastnost.

Java naopak umí navrhnout i likvidaci ošetření výjimky, pokud k výjimce nemůže dojít. Protože v C# není povinné ošetření, nedokáže ani rozpoznat tuto situaci.

Nahoru Odpovědět 4.7.2013 16:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Pro mne je ošetření výjimky záležitostí 4 znaků v editoru.

Nahoru Odpovědět 4.7.2013 16:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Každá metoda může někdy vyvolat nějakou výjimku, velkou část javového kódu potom tvoří několikanásobné catche plné balastu, co tam IDE generují. Asi proto to do C# nedali.

Nahoru Odpovědět 4.7.2013 16:48
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

A k tomu "navrhovaniu likvidácie ošetrenia výnimky" prichádza automaticky, alebo je potrebný nejaký ďalší kód?

Nahoru Odpovědět 4.7.2013 16:48
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Prostě ten nadbytečný kód try...catch editorem zlikviduješ.

Java to navrhuje automaticky. Zkus si dát try...catch kolem bloku, který tu výjimku nemůže vyhodit.

Nahoru Odpovědět 4.7.2013 16:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Java používá 2 typy výjimek. RuntimeException zachytávat nemusíš.

Nahoru Odpovědět 4.7.2013 16:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.