Java - proměnné z constructoru jsou v jedné metodě prázdné – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Java - proměnné z constructoru jsou v jedné metodě prázdné – Java – Fórum – Programujte.comJava - proměnné z constructoru jsou v jedné metodě prázdné – Java – Fórum – Programujte.com

 

1337
~ Anonymní uživatel
3 příspěvky
10. 1. 2016   #1
-
0
-

Zdravím,

dělám něco na rychlo do školy a narazil jsem na jeden problém a už mně nenapadá, jak to opravit.

Zdroják: http://pastebin.com/qJCCS1CT

A problém? 

this.parsedWord, this.gameLevel, this.imagePath, this.levelTitle jsou v metodě getRandomWord() prázdné, ale nikde jinde ne. Vyprintoval jsem si ve všech metodách gameLevel a výsledek:

getRandomWord() - 0
constructor() - 1
createGame() - 1

Kde je chyba? Díky.

Nahlásit jako SPAM
IP: 89.102.170.–
Kit+15
Guru
10. 1. 2016   #2
-
0
-

#1 1337
Máš chybně napsaný konstruktor. Pokud má chybný parametr, vyrobí nekonzistentní objekt.

Místo metody getRandomWord(), která do třídy Application nepatří, bys měl raději napsat třídu RandomWord. Vrací prázdný string, který je následně použit i v this.parsedWord. Vypadá to, že soubor "./img/1.txt" neexistuje (nevím jak ty, ale já ho nemám).

BTW: Trochu mě zdržela metoda createGame(), která do třídy Application vůbec nepatří. Nešlo mi to kvůli ní zkompilovat a přitom nikde není použita. Bylo by dobré už od začátku programovat objektově. Také bys měl vypakovat ven z třídy skryté závislosti - taková třída se pak nedá rozumně testovat.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1337
~ Anonymní uživatel
3 příspěvky
10. 1. 2016   #3
-
0
-

#2 Kit

Textové soubory (1.txt, 2.txt, 3.txt) jsem nenahrával, jsou tam jen pod sebou slova, která já vlastně v tom getRandomWord() tahám.

Metoda createGame() je použita až v JFrame třídě.. Je to hodně prasácký, protože jsem to psal hodně na rychlo. Jinak ta metoda vrací prázdný string kvůli tomu, že jsem to zapomněl odmazat. A i kdybych to odmazal, tak to spadne (hodí to vyjímku s indexem u array, že je -1) a soubor se ani neotevře, protože právě gameLevel je prázdný -

File file = new File("./img/" + this.gameLevel + ".txt");

Nahlásit jako SPAM
IP: 89.102.170.–
Kit+15
Guru
10. 1. 2016   #4
-
0
-

#3 1337
Abych ten program trochu pochopil, tak jsem si tu třídu rozdělil na samostatné třídy Application, Game a RandomWord. Doporučuji ti udělat totéž. Jinak se do toho časem zašmodrcháš ještě víc.

Jako gameLevel jsem si v konstruktoru testu nastavil hodnotu "1", aby mi to alespoň trochu fungovalo. Je mi však záhadou, proč ty 3 parametry předáváš jako pole stringů.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1337
~ Anonymní uživatel
3 příspěvky
10. 1. 2016   #5
-
0
-

#4 Kit
Máš pravdu. Celý to budu muset překopat.. Udělám to tak, jak píšeš. :) Díky

Nahlásit jako SPAM
IP: 89.102.170.–
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, 7 hostů

Moderátoři diskuze

 

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