Diskuze: Scanner a try-with-resources

Java Java Scanner a try-with-resources

Aktivity (1)
Avatar
Benjibs
Člen
Avatar
Benjibs:4.7.2013 14:12

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:4.7.2013 14:35

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:4.7.2013 14:56

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:4.7.2013 14:58

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:4.7.2013 15:03

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:4.7.2013 15:07

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:4.7.2013 16:32

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:4.7.2013 16:33

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
Benjibs
Člen
Avatar
Nahoru Odpovědět 4.7.2013 16:34
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:4.7.2013 16:35

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:4.7.2013 16:37

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:4.7.2013 16:39

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:4.7.2013 16:45

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:4.7.2013 16:46

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:4.7.2013 16:48

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:4.7.2013 16:48

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:4.7.2013 16:51

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:4.7.2013 16:54

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.