Bounded generický typ – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Bounded generický typ – Java – Fórum – Programujte.comBounded generický typ – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
me.name0
Návštěvník
3. 7. 2016   #1
-
0
-

mám triedu

public class Trieda1<T extends Trieda2> {
     T premenna;
     }

ktorá mi dovoluje aby T bol typ zdedený z triedy Trieda2, čo mi čiastočne vyhovuje, ale potreboval by som aby T mohol byť aj samotný typ Trieda2 a nie len zdedený typ z nej

Nahlásit jako SPAM
IP: 213.151.238.–
Reklama
Reklama
q
~ Anonymní uživatel
219 příspěvků
4. 7. 2016   #2
-
0
-

Tak to máš dobrý, protože přesně tak to funguje.   

Nahlásit jako SPAM
IP: 213.211.51.–
me.name0
Návštěvník
4. 7. 2016   #3
-
0
-

#2 q
typ T musí byť zdedení z Trieda2 , nie typ Trieda2  , ja portebujem aby som tam mohol použiť aj samotný typ Trieda2 to ale nejde

Nahlásit jako SPAM
IP: 213.151.238.–
Kit+11
Guru
4. 7. 2016   #4
-
0
-

#3 me.name
Co kdybys to udělal úplně jednoduše? 

public class Trieda1<Trieda2> {
    Trieda2 premenna;
}
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
me.name0
Návštěvník
4. 7. 2016   #5
-
0
-

#4 Kit
lenže ja potrebujem aby T mohlo byť Trieda2 ale aj všetko zdedené

Nahlásit jako SPAM
IP: 213.151.238.–
q
~ Anonymní uživatel
219 příspěvků
4. 7. 2016   #6
-
0
-

#5 me.name
A to v obou případech jde. Zkusíš to sám?

Nahlásit jako SPAM
IP: 213.211.51.–
me.name0
Návštěvník
4. 7. 2016   #7
-
0
-

#6 q
aha funguje to , chybu som tam mal inú:

class class1 <T extedns class2<class3>, T4 extedns class3> {

}

class exClass extends class1<class2, class3> {  //tu malo je chyba class

}

malo tam byť exClass extends class1<class2<class3>, class3>

Nahlásit jako SPAM
IP: 213.151.238.–
Kit+11
Guru
4. 7. 2016   #8
-
0
-

#7 me.name
Slyšel jsi někdy něco o SRP?

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
me.name0
Návštěvník
4. 7. 2016   #9
-
0
-

#8 Kit
nie

Nahlásit jako SPAM
IP: 213.151.238.–
Kit+11
Guru
4. 7. 2016   #10
-
0
-

#9 me.name
"Single Responsibility Principle", neboli "Princip jedné odpovědnosti" je významnou částí návrhových principů SOLID. Při dodržování těchto pravidel vychází třídy jednoduché, opakovaně použitelné a dobře se testují.

S uvedeného příkladu je vidět, že ve své třídě máš hromadu tzv. skrytých závislostí, což souvisí s dalším principem DIP. Každá oprava některé ze tříd ti spouští lavinu oprav v ostatních třídách. Přitom se má opravovat vždy jen ta třída, ve které je chyba.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
me.name0
Návštěvník
4. 7. 2016   #11
-
0
-

#10 Kit
skratka SRP mi nič nohovorila, no principy SOLID poznám , bohužial som začiatočník robím ako viem...

Nahlásit jako SPAM
IP: 213.151.238.–
Kit+11
Guru
4. 7. 2016   #12
-
0
-

#11 me.name
Když se toho SOLIDu budeš držet, tak délka běžné třídy bude jen cca 20-60 řádek a bude mít poměrně jednoduché rozhraní s ostatními třídami.

Zajímavou pomůckou je výskyt teček na řádce (mimo stringy): 1-2 tečky OK, 3 tečky varování a 4 tečky už jsou moc. Řádky pokud možno nezalamovat uvnitř příkazu/výrazu, dodržovat délku do 80 znaků kvůli čitelnosti a přehlednosti. Maximálně 4 úrovně odsazení.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
me.name0
Návštěvník
4. 7. 2016   #13
-
0
-

Práveže o to sa snažím aby triedy neboly dlhé , práve preto používam vela dedenia

Nahlásit jako SPAM
IP: 213.151.238.–
Kit+11
Guru
4. 7. 2016   #14
-
0
-

#13 me.name
Tak to je chybná cesta. K těmto účelům se používá kompozice a injekce závislostí.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kit+11
Guru
4. 7. 2016   #15
-
0
-

#7 me.name
Ještě existuje velmi jednoduchá pomůcka:

Můžeš tvrdit, že "exClass je class1"? Pokud ne, tak nemůžeš zapsat "exClass extends class1".

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Typ osobnosti — založil tobel

Dátový typ — založil zonda

Navratovy typ — založil Gadael

Datový typ — založil Rade.k

Návratový typ funkce — založil TomBar

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý