- Xiaomi 15T Pro - a téma nincs lezárva
- Kétezer eurós csomag lehet a Vivo X300 Ultra
- iPhone topik
- Telekom mobilszolgáltatások
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Túl jól fogy az S26, túlóráznia kell a gyártósoroknak
- OnePlus 15 - van plusz energia
- 200 MP-es főkamerával és dupla periszkóppal jön az Oppo Find X9 Ultra
- Google Pixel Watch 4 – Hé, Google, mennyi az idő?
- Megtartotta Európában a 7500 mAh-t az Oppo
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
Te nagyon kevered a szezont a fazonnal. Nem sokat programoztál Javában, meg úgy egyáltalán, jól sejtem? Az alapokat valahogy össze kéne szedni. A szál nem azt jelenti, hogy egy külön osztályba szervezed a kódot, hanem teljesen mást.
Most gondoltam el kezdem magyarázni, hogy hogyan készíts egy új szálat Android módon stb, de rájöttem, hogy igazából a szál fogalmát se ismerheted, különben nem jössz elő ezzel a példával. No offense. Itt van egy leírás az Android UI száláról. Itt pedig úgy szálakról általában. Ha ezeket elolvastad, ne tévesszen meg a dolog, Android-on nem Thread-et szoktunk használni, hanem az első linkben bemutatott AsyncTask-ot.
Default constructor cannot handle exception type MalformedURLException thrown by implicit super constructor. Must define an explicit constructor
Ha egy osztályban nem deklarálsz explicite konstruktort, akkor a fordító létrehoz egy úgynevezett default konstruktort, aminek nincs paramétere és nem dob semmilyen kivételt. De csak akkor hozza létre. ha az ősnek létezik és elérhető olyan konstruktora aminek nincs paramétere és nem dob semmilyen kivételt. Tehát valójában "így nézne ki a class":
public class UrlRead {
public UrlRead(){
super();
}
...
}Ezen kívül Te a konstruktoron kívül rögtön inincializálod a két meződet. Ebben az esetben ez a művelet valójában úgymond a default konstruktorban fog végrehajtódni, valahogy így lesz a lefordított osztályban (pszeudokód):
public class UrlRead {
URL logPage;
BufferedReader in;
public UrlRead(){
logPage = new URL("http://bkaroly.hu/log.php");
in = new BufferedReader(new InputStreamReader(logPage.openStream()));
super();
}
...
}Itt viszont meghívod az URL osztály konstruktorát. Ebben deklarálva van, hogy MalformedURLException-t dobhat:
URL osztály részlete:
public URL(String url) throws MalformedURLException{ ... }
Javában viszont minden ellenőrzött kivételt (és a MalformedURLException az), kötelező lekezelni. Ennek két módja van, vagy try-catch blokkba rakod a műveletet, vagy jelzed, hogy tovább dobható a kivétel a throws kulcsszóval. De a default konstruktor nem dobhat tovább kivételt, ahogy már jeleztem, ezért kapod ezt a fordítási hibát.
Mellesleg a kódodnak nem sok értelme lenne ha fordulna is, hiszen megkapod a BufferedReadert de aztán semmit se kezdesz vele.
Új hozzászólás Aktív témák
- Genshin Impact (PC, PS4, Android, iOS)
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- Xiaomi 15T Pro - a téma nincs lezárva
- Assetto Corsa Rally
- Fogyjunk le!
- Azonnali alaplapos kérdések órája
- TCL LCD és LED TV-k
- Kétezer eurós csomag lehet a Vivo X300 Ultra
- Viccrovat
- Kertészet, mezőgazdaság topik
- További aktív témák...
- AKCIÓ!!! TÜZES EZÜST! -20%!!! MACBOOK NEO!!!! - MAGYAR BILLES! - SILVER AJÁNDÉKKAL!
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- 0perces! Samsung Galaxy Book5 360 2in1 Core Ultra 7 256V 16GB 2TB 15.6 FHD AMOLED TOUCH 1évgar
- 27% - ASUS ZenDrive U9M optikai meghajtó DVD RW Ezüst
- HP Victus Gaming Laptop INTEL I7-14700HX / RTX 4070 32GB RAM 1TB SSD 144Hz Gari
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

