- Nincs több főgombos iPad, van helyette nagyobb Air és Pro M4 chippel
- Okosóra lett a Huawei fitnesz karperecéből
- Mobil flották
- Elkaszálhatja az Apple az iPhone Plust
- Honor 90 - modellalkat
- Xiaomi 14 Ultra - Leica hercegnő
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Google Pixel 6/7/8 topik
- Honor Magic6 Pro - kör közepén számok
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
Hirdetés
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Javított aktuális csúcslapkáján a MediaTek
ph A Dimensity 9300+ némi extra processzorerőt kínál.
-
Saját AI-chipet visz az adatközpontokba az Apple
it A jelentések szerint az Apple saját chipeket fejleszt, hogy AI-szoftvereket futtasson az adatközpontokban.
Új hozzászólás Aktív témák
-
-
Gyuri16
senior tag
válasz btraven #11376 üzenetére
Ha nem akarsz rajta gondolkodni, akkor eleg megjegyezni hogy "Producer extends Consumer super" - PECS.
mapper fuggveny elso parametere a bemenet, ez consumer. A masodik az eredmeny ez a producer.
Ha erdekel bovebben, akkor lehet itt kezdeni: [link]
Igaz collectionokrol van szo, de a lenyeg ugyanaz.map fuggvenynel maradva, vegyunk egy konkret mapper implentaciot.
mapper fuggveny parametere egy valtozo. Azt akarod, hogy a valtozo el tudjon tarolni egy T tipusu objektumot. Milyen lehet a valtozo tipusa? Nyilvan lehet T. Lehet-e T-tol leszarmazott osztaly? Nem, mert akkor nem tudna egy T tipusu objektumot tarolni (pl. Integer valtozoba nem lehet Object-et tarolni). Lehet-e T elodje? Igen, altalanosabb tipusu valtozoba lehet leszarmazott osztalyt kuldeni. (ismet: Object-be lehet Integert). Ezert super.Nezzuk a mapper fuggveny eredmenyet. Itt azt szeretned, ha egy R tipusu valtozoba el lehetne menteni.
R eredmeny = mapper(bemenet);
Milyen osztalyokra igaz ez? R lehet. R elodje nem lehet (Integerbe Object-et). R-tol leszarmazott lehet. Ezert extends.Ha eloszor foglalkozol ezzel, kicsit zavaros lehet. Ajanlom, hogy probald ki egy egyszeru A->B->C hierarchian Collectionokkel (ami a linkben van).
mod: amig irtam, nyilvan megeloztek most mar itthagyom, hatha segit a magyar verzio.
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz btraven #11381 üzenetére
Itt csak a megnevezesekben van kis kavarodas. Es abban, hogy a mapper fuggvenynel a Function volt generikus, itt pedig a src es dest valtozok (tipikusan valamilyen Collection).
A valtozok felhasznalasat kell nezni. A src egy Collection, ebbol a copy fuggveny olvasni fog ("The src argument provides the data to be copied"). Tehat a src egy producer.
A dest valtozo az eredmeny, ebbe a fugveny irni fog, tehat consumer. "the dest argument accepts data"Nem vagyok egoista, csak uborkagyalu!
-
Drizzt
nagyúr
válasz btraven #11422 üzenetére
De, szabad hasznalni. Viszont ha nem valamilyen factory metodusban hasznalod, akkor gyanus, hogy lenne helyette szebb, biztonsagosabb, bovithetobb OOP megoldast talalni a problemara. Nyilvan nem mindig. Akkortol jon a gond, ha tobb metodusban ugyanazon ertekkeszlet alapjan kell kulonbozo dolgokat csinalni, mert konnyen el lehet cseszni, ha bovul az ertekkeszlet.
I am having fun staying poor.
-
MODERÁTOR
válasz btraven #11462 üzenetére
Hát... Ha van egy api és ahoz kéne akkor electron. Ha windows alkalmazás akkor pedig .net-ben állnék neki. Sajnos a desktop java halott.
De, hogy a kérdésre is válasoljak én egyszerű ui esetén swing-gel állnék neki.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Szmeby
tag
válasz btraven #11462 üzenetére
En amikor csak lehet, csak backendet keszitek javaban. A frontend meg szepen koltozzon at a bongeszobe (angular, react, vue, stb).
Ha tenyleg annyira pici a problema, hogy nem eri meg egy js frameworkkel loni ra, akkor desktopra inkabb raknek ossze egy python appot. Az is benacska, de legalabb gyorsan elkeszul. Azert python, mert szerintem sokkal konnyebb es mert mashoz nem ertek.
Ha meg nagyon ragaszkodnek valamiert a javahoz, akkor +1 a javafx-re. Az a legujabb desktop frontendje, de mar azt sem eroltetik a keszitok.
-
Szmeby
tag
válasz btraven #11473 üzenetére
En ugy gondolom, hogy jelentos merteku fejfajastol kimelned meg magad, ha elobb bekonfiguralnad az IDEt ugy, ahogy neked tetszik. Minden valamire valo IDE-ben be lehet allitani, hogy mit tekintsen hibanak es mit ne, hogyan formazzon es hogyan ne. Szerintem ez is kepes ra.
Persze ha csak ventillalni szeretnel, akkor targytalan, folytasd nyugodtan.
Megjegyzem, en szeretem a zarojelet az if-nel, mert igy egyseges, konnyen attekintheto.
-
MODERÁTOR
válasz btraven #11477 üzenetére
No offense de miért jó az neked, hogy Eclipse-szerű legyen az IDEA? Én pont az Eclipse-t tartom egy átláthatatlan és nem intuitív IDE-nek mert egyszerűen az.
Én mindenkinek javaslom a SonarLint plugin használatát is. Sokat lehet benne tanulni és jó tippeket ad.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
btraven
őstag
válasz btraven #11495 üzenetére
In for-each loop, we can’t modify collection, it will throw a ConcurrentModificationException on the other hand with iterator we can modify collection.
-
sztanozs
veterán
válasz btraven #11497 üzenetére
Ez semmilyen for ciklussal nem tudod megoldani. Az
iterátortiterált objektumot nem változtathatod meg.[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz btraven #11500 üzenetére
Nem tudod megoldani, hogy egyezzen a típus?
Egyébként az IDE se mindentudó - a gond nálad ott van, hogy nem az iterált objektumból törlöd az army objektumot, hanem konkrétan magát az objektumot törlöd. Az IDE nem jött rá, hogy ezzel módosul maga az iterátor is. Amúgy ez szvsz inkább tervezési hiba lesz.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Szmeby
tag
válasz btraven #11495 üzenetére
Normális esetben kompatibilis. Ha valóban CME-t dob, akkor a jelek szerint az Army objektumaid nyilvántartják magukban, hogy a defenderArmies collection részei, és valamelyik remove (gondolom az utóbbi) el akarja távolítani saját magát a defenderArmies collection-ből is.
És ha ez a helyzet, míg az iteratoros példa CME nélkül lefut, akkor szerintem hibázik. Mivel az iterator saját állapotot tart fenn, hogy tájékozódjon a collectionben, őt különösebben nem zavarja, ha menet közben törölsz a listából, de ha ezt nem közlöd az iteratorral, akkor minimum hibás eredményt hoz, pl. nem töröl mindent, vagy nem azt törli, amit kellene, nem tudom.
Az iterator tényleg lefut, míg a foreach elszáll?A helyes iterator használat valahogy így nézne ki:
Iterator<Army> iter = defenderArmies.iterator();
while (iter.hasNext()) {
Army army = iter.next();
// do sth with army
iter.remove();
}
Az iter.remove() mondja meg az iteratornak, hogy itt törlés van, és vissza kell léptetnie a kurzorát. Enélkül, hát, csodálom, hogy nem dob hibát. -
MODERÁTOR
válasz btraven #11509 üzenetére
Ha ráhívsz:
land.isAvailable()
vagy
land.isAvailableLand()
Én az elsőt pártolom mert felesleges a land szó kétszer. Szóismétlés. Clean kód esetében mi is alkotunk mint egy író.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Drizzt
nagyúr
válasz btraven #11512 üzenetére
Nem poolozva vannak, hanem egyszeruen az osztaly/interface tipusu valtozok gyakorlatilag pointerek. Szoval ezekkel a sorokkal kb. az alabbit csinaltad:
A heapen letrehoztal egy A tipusu peldanyt. A kis a valtozot letrehoztad a stacken, ami az elobb letrhozott heapen levo peldany cimere mutat. Letrehoztad az a2 valtozot a stacken, ami ugyanarra a cimre mutat az ertekadas miatt, mint a.Emiatt van az is, hogy nyelvi alapelem lett az equals, hogy latvanyosan megkulonboztetheto legyen az ertek szerinti osszehasonlitas a cim szerintitol.
I am having fun staying poor.
-
Drizzt
nagyúr
válasz btraven #11514 üzenetére
Ja igen. A helyzet az, hogy az a2 nem módosulhatott. Valami más miatt tűnik úgy, mintha ez történt volna. Hogy néz ki az A class? Nem véletlen valami static field-et állít át a konstruktora? Mi alapján gondolod, hogy a1, meg a2 is "hi"?
Itt egy példa, hogy ennek a fajta értékadásnak az a2(, a példában s2) által mutatott címet nem szabadna mósodítania.
@Test
void assignment() {
String s1 = new String("Hello");
String s2 = s1;
s1 = new String("hi");
System.out.println(s1);
System.out.println(s2);
System.out.println("s1 default hashcode: " + System.identityHashCode(s1));
System.out.println("s2 default hashcode: " + System.identityHashCode(s2));
}
Output:
hi
Hello
s1 default hashcode: 1366025231
s2 default hashcode: 1427889191I am having fun staying poor.
-
fatal`
titán
válasz btraven #11546 üzenetére
Ha még nem pusholtad be akkor lehet (utána is, csak force push kell és ha valakinél már lent van a commitod akkor össze-vissza fog mergelgetni). Ha a legutolsó commit, akkor változtatás nélkül az "üres" staget tudod amendelni és átírni a commit messaget. Ha régebbi commit akkor interactive rebase.
-
-
-
Aethelstone
addikt
válasz btraven #11572 üzenetére
Nalam Eclipse van, kiválóan futnak a gradle taskok. Mondjuk én sem szeretem az eclipses plugint, ha egy mód van rá, bashból tolom, de mavenre ugyanez igaz. Jah, a pluginnel nem sokat szarakodtam, ami a legutolsó Eclipseban gyárilag benne van, azt használom.
[ Szerkesztve ]
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
Drizzt
nagyúr
válasz btraven #11585 üzenetére
"Nem lett bonyolult a helyzet ezzel a lambda meg stream-ekkel?"
Nem, sokkal egyszerűbb lett. Egyébként lambdát nem kötelező használni, ahol tudok inkább method reference-et használok. A streamnek meg fontos képessége a lazy eval, meg a concurrency support. Bizonyos problémákat tök egyszerűen, szépen, elegánsan és hatékonyan meg lehet oldani funkcionális eszköztárral, amit amúgy bonyolultan/csúnyán lehet megoldani nélküle.
"Annak idején egy fejlesztőnyelv/eszköz-ben csak az volt ami nagyon kellett. Minden le volt dokumentálva és minden úgy működött ahogy a doksiban volt."
Ez ma is így van. Maximum 1-2 szinte már sosem használt nyelvi elem léte lenne megkérdőjelezhető, de azok meg maradnak némi backward compatibility miatt. Az meg ha esetleg azért kérded ezt, mert szerinted a Stream felesleges, akkor egyszerűen még nem éreztél rá. Nélküle nagyon szar lenne az élet, ezt pár évi gyakori Stream használóként mondom. Nézz végig valamilyen alap fukncionális progamozást traininget, után egyértelműnek kellene lennie miért ilyen fontos dolog.
"Most már nehéz a programozó élete. A sok nyílt forráskódú, ingyenes cuccban az egyik fele nincs dokumentálva a másik fele meg hibásan működik vagy éppen sehogy. Ugye azért nyílt, mert majd kijavítod magad ha nagyon kell. Csak nem képzeled hogy ingyen még hibátlan is legyen?"
Ez megint nincs így. A lefontosabb, legnépszerűbb framework/libek leggyakrabban használt funkciói eléggé stabilak, ritkán kell körbebástyázni őket. A probléma az esetek 95%-ban abból adódik, hogy valaki megspórolja az alapjaik megismerését és anélkül kezdi őket használni valami olyan célra, amire nem feltétlenül alkalmasak. Még ha elő is fordulnak bugok, sokkal előrébb jársz, ha valami libet használsz rájuk, mintha 0-ról kezdenéd megírni. Sokkal tovább tartana, s a minősége is szinte borítékolhatóan rosszabb lenne.
Az utóbbi évekből pár dolog, aminek én nem voltam elégedett a dokumentációjával: annotation processor, Spring boot property source használat belsőségei. De az is lehet csak nem a megfelelő dokumentációt olvastam. Ráadásul Java-ban az se megy ritkaságszámba, hogy korábbi open source lib a nyelv részévé válik, pl.: Joda-time.I am having fun staying poor.
-
Aethelstone
addikt
válasz btraven #11585 üzenetére
Annak idején egy fejlesztőnyelv/eszköz-ben csak az volt ami nagyon kellett. Minden le volt dokumentálva és minden úgy működött ahogy a doksiban volt.
Nah jah, de akkortájt még nem is kellett annyi minden És hidd el, hogy akkoriban vért kellett hugyozni annak a megírásával, amit most pár, jól irányzott annotációval százszázalékos biztonsággal meg tudsz oldani. Ilyen fejlesztői napidíjak mellett nem rentábilis egy problémát napokig reszelgetni, amikor triviális megoldás is vanMI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
Drizzt
nagyúr
válasz btraven #11666 üzenetére
Koszi a peldat!
Igy egyszerubb valaszolni a kerdesedre.
[Javadoc] : "Exceptions are thrown for problems with the OutputStream and for classes that should not be serialized. All exceptions are fatal to the OutputStream, which is left in an indeterminate state, and it is up to the caller to ignore or recover the stream state."
Szoval nincsen kulonosebben specifikalva, hogy mi fog tortenni Exception eseten. Elofordulhat, hogy kulonbozo JVM-eken es kulonbozo javaverziokon is kulonbozokeppen viselkedik, de a leirasaban benne van, hogy az esetleges szemetet a hivonak kell feltakaritani. Szamomra meglepo, hogy igy van. Szoval a catch agban zard a Streameket, majd torold a fajlt, ha van.
Ha atirod a peldadat "try with resources" alapon, akkor a close-et nem kell sehol meghivnod, mert a ket outputstream autoClosable.I am having fun staying poor.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- HYTE THICC Q60: a legvaskosabb vízhűtés
- Nincs több főgombos iPad, van helyette nagyobb Air és Pro M4 chippel
- Milyen TV-t vegyek?
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Okosóra lett a Huawei fitnesz karperecéből
- Deezer
- Mini-ITX
- Futás, futópályák
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- További aktív témák...
- ASRock Phantom Gaming RX 5700 XT - eladó!
- ÚJ Bontatlan MacBook Pro 14 M3 Pro 11CPU/14GPU 18GB/512GB SSD Magyar billentyűzet Azonnal átvehető.
- BONTATLAN Új Iphone 15 PRO MAX 256-512GB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- OLED65GX6LA 2 Év gyári Garancia
- LG OLED55G39LA 2 Év gyári garancia
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen