- Mobil flották
- Megjött a jubileumi Pixel széria
- Samsung Galaxy S25 Edge - a tegnap határán
- Új középpályást igazolt a Qualcomm
- Bemutatkozott a Poco X7 és X7 Pro
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy A56 - megbízható középszerűség
- Apple Watch Sport - ez is csak egy okosóra
- A lapkakészlet és az akku különbözteti meg a Motorola Edge 60 és Edge 60 Pro-t
Új hozzászólás Aktív témák
-
modder
aktív tag
Karma írta: "A lényeg az, hogy milyen szolgáltatást nyújt, nem az, hogy konkrétan hogyan oldja meg."
Igazából ez a legfontosabb dolog. Amit még hozzá tennék, hogy kontextusfüggő vagy scope függő, hogy a statikus típusa a változónak Map vagy TreeMap legyen-e.
Amikor az osztályod (osztályaid) külső interfészét tervezed meg, akkor a hívó kliens kódnak nem kell tudnia hogy milyen konkrét implementációt (TreeMap vagy HashTable) ad vissza az osztályod egy függvénye, csak azt, hogy a visszaadot érték Map tulajdonságú.
De az osztályon belül fontos lehet, hogy konkrét típust deklarálj. Például egy JSON feldolgozó osztályt csinálsz, és szeretnéd, ha a hívó kliens egyszerűen egy OutputStreambe tudja írni a feldolgozandó JSON stringet. Neked azonban kell egy módszer a JSON feldolgozó osztályban, amivel ki tudod nyerni az OutputStreambe írt adatot. Az OutputStream interfészben nincsen deklarálva semmilyen metódus, amivel adatot ki tudnál nyerni (nem is arra való). De a ByteArrayOutputStreamben vissza tudod kérni a beírt adatot byte[] tömbként.
Konkrét példa:
public class MyJsonParser {
private ByteArrayOutputStream jsonByteStream = new ByteArrayOutputStream();
public OutputStream getOutputStream() {
return (OutputStream) jsonByteStream;
}
public JsonObject parse() {
// fontos tudni hogy ez egy ByteArrayOutputStream hogy használhassuk a toByteArray() metódusát
byte[] jsonBytes = jsonByteStream.toByteArray();
JsonObject jObject = new JsonObject();
// parszoljuk a json stringet
return jObject;
}
}
public class Application {
public static void main(String[] argv) {
MyJsonParser parser = new MyJsonParser();
// kit érdekel a konkrét implementációja az OutputStreamnek én csak írni akarok bele?
OutputStream parserOutputStream = parser.getOutputStream();
parserOutputStream.write( argv[0].getBytes() );
JsonObject jObject = parser.parse();
}
}Ezt csak azért írtam le, mert nem örök igazság, hogy csak interfész típust deklarálunk.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Kerékpárosok, bringások ide!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Ingatlanos topic!
- Mobil flották
- Spotify
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Autós topik látogatók beszélgetős, offolós topikja
- Megjött a jubileumi Pixel széria
- Apple asztali gépek
- Samsung Galaxy S25 Edge - a tegnap határán
- További aktív témák...
- Új Acer Predator 16 WQXGA 165Hz G-Sync i9-13900HX 16GB 1TB Nvidia RTX 4070 8GB 140W Win11 Garancia
- Számítógép, ryzen 5 2600, RX 580 8GB, 16gb ddr4, 512gb ssd, 1tb hdd
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 16/512 Iris Xe FHD
- Gigabyte GeForce GTX 1660 Ti OC hibátlan, dobozos, 14 nap személyes garanciával
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 32/512 Iris Xe FHD
- Samsung Galaxy Book2 NP750XED i7-1255U 16GB 512GB GARANCIA: 1 ÉV
- HIBÁTLAN iPhone XS 64GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3030, 100% Akkumulátor
- Fujitsu LIFEBOOK E449 i5-8250U 12GB 512GB 14" FHD 1 év garancia
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- Samsung Galaxy A54 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest