Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Object lang

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Object lang

Autor: Mi.Chal

11:09:33 13.11.2011

Honza Napsal:
-------------------------------------------------------
> jak tedy vytvorim List abych se pak dostal na
> vsechny prvky v te mnozine?
> nejak takto??
>
> class Table {
> private List>>
> table;
>
> Table(int size) {
> this.table = new ArrayList(size);
> }
> }

kdyz table deklarujes jako List<>, tak do toho tezko muzes cpat ArrayList. Mel bys tam prirazovat to, co mas v deklaraci nebo kompatibilni podtyp

Citovat příspěvek

 

Re: Object lang

Autor: Honza

10:03:30 13.11.2011

jak tedy vytvorim List abych se pak dostal na vsechny prvky v te mnozine?
nejak takto??

class Table {
private List>> table;

Table(int size) {
this.table = new ArrayList(size);
}
}

Citovat příspěvek

 

Re: Object lang

Autor: Maaartin

16:25:53 12.11.2011

Tak pouzij List. Stejne to takhle nedava smysl, zjednodusim tvuj priklad na

final Integer[] a = (Integer[]) new Object[42];

Prelozit to jde ale stejne to VZDY zdechne.

Citovat příspěvek

 

Re: Object lang

Autor: Honza

16:02:31 12.11.2011

Proč potřebuješ pole setů?

jde o úkol kde mám vytvořit hashovací tabulku se zřetězením a na to potřebuju pole do kterého budu ukládat množiny prvků se stejným klíčem

Citovat příspěvek

 

Re: Object lang

Autor: Natix

14:38:14 12.11.2011

1. Proč potřebuješ pole setů? Mícháním polí a generik ztrácíš typovou bezpečnost. Když použiješ list setů, tak získáš bezpečný a flexibilnější kód se zanedbatelnou výkonnostní ztrátou.

2. Nerozumím tomuhle kódu:
[code]
class Table {
private Set>[] table;
[/code]
Jaký má smysl mít třída Table, něco jako mapa? To už pak nemáš pole setů, ale pole setů tabulek nebo něčeho takového. Především je ale takový kód nezkompilovatelný, protože nikde nemáš definovaný typový parametr T.

3. Řádka [code]Table tb = new Table(5);[/code] je už jenom třešnička na dortu: Tím, že při vytvoření instance Table jsi neposkytl žádný typový parametr (třeba [b]Table[/b]) tak jsi vytvořil instanci raw typu, což znamená že veškeré ty generické hrátky, které jsi napsal nad tím, jsou pro tenhle objekt zahozeny. Čili pokud bys měl v Table ještě nějaké generické metody, tak u nich by všechny parametrizované argumenty a návratové hodnoty spadly na Object.

Citovat příspěvek

 

Re: Object lang

Autor: Honza

14:36:29 12.11.2011

po zapsani
Table tb = new Table(5);
to hlasi vicemene to stejny

[Ljava.lang.Object; cannot be cast to [Ljava.util.Set;

Citovat příspěvek

 

Re: Object lang

Autor: Mi.Chal

14:20:47 12.11.2011

Honza Napsal:
-------------------------------------------------------
> ale po zavolani z mainu
>
> Table tb = new Table(5);
>
> tak mi to vyhodi chybu [Ljava.lang.Object; cannot
> be cast to [Lpackage.T;

nechybi ti nahodou za nazvem typu genericke parametry? Treba Table

Citovat příspěvek

 

Object lang

Autor: Honza

13:21:48 12.11.2011

Ahoj potreboval bych vytvorit pole setů a nějak se mi to nedaří.mám něco takovýho:

class Table {
private Set>[] table;

Table(int size) {
table = (Set>[]) new Object[size];
}

ale po zavolani z mainu

Table tb = new Table(5);

tak mi to vyhodi chybu [Ljava.lang.Object; cannot be cast to [Lpackage.T;

vím že nejde vytvořit generický pole ale nevím moc jak na to
:S

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: