- Bemutatkoztak a be quiet! Light Base 500 szériás, kábeleket rejtő házai
- A Chieftec néhány terméke fehér köntöst öltött
- Sokkal drágább lett az „olcsó” Tesla, mint várták
- Egy fontos tényező akadályozhatja a csúcstechnológiás chipgyártást az USA-ban?
- Visszatért a mítosz, a legenda, a világ leghasznosabb terméke!
- TCL LCD és LED TV-k
- KODI (ex-XBMC) Android alapokon, Androidos media-boxok
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Visszatért a mítosz, a legenda, a világ leghasznosabb terméke!
- OLED TV topic
- Milyen TV-t vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- HP notebook topic
- Androidos tablet topic
- Milyen joysticket vegyek?
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
tick
aktív tag
válasz
plaschil #6664 üzenetére
Csak WebDriverről tudok nyilatkozni. Ott findElement helyett findElements és megkeresed hányadik kell
pl:
ArrayList<WebElement> elements =
driver.findElements(By.xpath("//input[contains(@id,'TextBox_szerzodes')]"));
System.out.println(elements.get(0).getText());más: nem tiszta miért kellett lassítani, WebDriverben van wait:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("id"))); -
-
-
M_AND_Ms
veterán
válasz
plaschil #6103 üzenetére
Az egyes bean-ekben azokat a private final mezőket, amiknek nem kívülről adsz értéket, nyugodtan teheted static-ba is. Ha pl száz példányt készítesz egy ilyen bean-ből, akkor ezek a mezők is százszor fognak létrejönni, inicializálódni, százszor foglalják a helyet a memóriában, miközben sohasem változnak és mindegyik bean-ben ugyanazt az értéket képviselik. Static esetén csak egyszer történik minden.
Pl: private static final double HAZAI_KILEPESI = 70.99;Az érték visszaadó getterekben (pl: getPontKodErtek) lévő logikát, már a konstruktorba hajtsd végre. Ha százszor hívják meg az ilyen gettert, akkor százszor fog lefutni ez a logika és mindig ugyanazt fogja visszaadni. Tehát elég egyszer kiszámolni a konstruktorban, ahol beadod az ertek paramétert.
-
Szmeby
tag
válasz
plaschil #6108 üzenetére
Amikor enumot csinálsz, nyugodtan tekintsd őket konstansnak. Vagyis a legtöbb esetben felesleges mellé static final cuccokat definiálni, azok simán elvannak az enum obejktumon belül is. Pl. a KapacitasTipus-ban.
Vagy eleve a double értékeket adod be a konstruktornak (0.5 és 1.0), vagy ha ragaszkodsz az egész számokhoz is, akkor a konstruktorban elosztod százzal. Így a getter sokkal egyszerűbb lesz, megszűnik a felesleges komplexitás (if).Valami ilyesmi módon:
public enum KapacitasTipus {
M0(100), M10(50);
private final int kapacitasTipus;
private final double ertek;
private KapacitasTipus(int tipus) {
this.kapacitasTipus = tipus;
this.ertek = tipus / 100.0;
}
public int getKapacitasTipus() {
return this.kapacitasTipus;
}
public double getKapacitasTipusErtek() {
return this.ertek;
}
}De akár második konstruktor argumentumként is belőhető a másik szám, ha erre tényleg szükség van.
Ami a komplexitást illeti, amikor gigászi if-else vagy switch-case füzéreket látsz, akkor érdemes elgondolkodni azon, hogy talán nem a legjobb helyen vannak. Gondolok itt a Szerzodes.createList() metódusra, ahol egy stringből enum objektumot készítenél. Szerencsére erre létezik az enumban beépített metódus:
pkod = PontKod.valueOf(kod);
...
ktipus = KapacitasTipus.valueOf(kapacitastipus);Amit tudni érdemes róla, hogy exception-t dob, ha olyan stringet kap, amihez nem talál enum példányt. Ha szükséges, ezt ajánlott lekezelni egy try-catch-ben.
A PontKod átalakításával még átláthatóbb kódod lesz.Az enumnak van még pár hasznos beépített metódusa (name(), ordinal(), values()), érdemes őket megismerni.
-
raggg
senior tag
válasz
plaschil #6105 üzenetére
FeldolgozGUI:59:
txtKivalasztott.setText(file.getName());
Itt a fájl nevét kéred ki, nem az útvonalát. Valószínűleg file.getPath()-szal okés lesz.
Kis magyarázat: a getName() a fájl nevét adja vissza (nem az útvonalat), így csak a forrás könyvtárban lévő fájlokra fog működni.
-
válasz
plaschil #6103 üzenetére
> public boolean kozeEsikE(Date aktualis, int teliKezdete, int teliVege) {
Ez egy eleg fura metodusnak tunik nekem, a masodik es a harmadik bemenoparameterrel nem kezdesz semmit.
> if (this.ertek.equals("HAZAI_KILEPESI")) {
Itt erdemes lenne forditva nezni az egyenloseget (("HAZAI_KILEPESI").equals ... ), hogy ne legyen problemad a null ertekekkel. -
Aethelstone
addikt
-
-
Aethelstone
addikt
válasz
plaschil #5948 üzenetére
Szerintem http://docs.oracle.com/javaee/7/tutorial/doc/home.htm a legjobb. Egyszerű, közérthető, online. Nekem sokat segített annak idején.
-
Cathfaern
nagyúr
válasz
plaschil #5868 üzenetére
Komponensteszt (felteszem ez alatt a unit testet értjük) egyértelműen a fejlesztő feladata 100%-ban. Itt lényegében ő ír automatizált teszteket az általa megírt kódhoz.
Integrációs teszt is a fejlesztő feladata, bár itt már nem feltétlen egyértelmű, hogy az írja az automatizált tesztet aki fejlesztette a kódot (illetve ez tipikusan arról szokott szólni, hogy két külön ember által fejlesztett részrendszer együtt is működik-e rendesen. De persze akkor se árt ilyen, ha a két részrendszert ugyanaz az ember fejlesztette).
Rendszerteszt: na ez nem tudom pontosan mit takar. Leginkább viselkedéstesztnek gondolnám, tehát amikor már nem azt nézzük, hogy az egyes leprogramozott dolgok jól működnek-e, hanem hogy az egész rendszer azt csinálja-e amit elvárunk tőle. Ez tipikusan felhasználó felület teszt szokott lenni, jobb esetben automatizálva. Ha automatizálva van, akkor fejlesztőnek lehet köze hozzá, bár tipikusan ezt már egy külön tesztelő csapat szokta csinálni.
UAT: magát az elnevezést nem ismerem, de a "szűk körű végfelhasználói teszt" megnevezés alapján itt a fejlesztőnek csak annyi a feladata, hogy remegve várja, hogy milyen bugokat találnak a userek -
boost
veterán
válasz
plaschil #5733 üzenetére
Azzal tudod a programodat Debuggolni. Azaz elindítod a programot, és ahova elhelyeztél breakpointot ott megáll, majd onnan lépésről lépésre tudod léptetni. Közben egy másik ablakban látod a változók aktuális értékét. Hibakeresésre kíváló. A zöld nyíl azt jelenti, hogy fusson tovább a program, Pause jel futás közben megállítod ( erre inkább breakpoint), piros a teljes program leállítása. A nyilak pedig egy funkcióba való belépést, kilépést, vagy átlépést jelentik. Ezek az alapok. A többihez nekem is el kéne indítani egy eclipse-t.
-
Aethelstone
addikt
válasz
plaschil #5500 üzenetére
Erre való pl. a maven, hogy a netről összevadássza. Egyébként szerintem név szerint megvannak a jarok a build pathban, max. fizikailag nincsenek a hivatkozott helyen.
Itt: [link] jó eséllyel megtalálod a hiányzó jarokat. Hacsak nem valami egzotikus helyről szedted őket. Aztán sürgősen térj át valami maven-szerű cuccra
-
Aethelstone
addikt
válasz
plaschil #5452 üzenetére
A kolléga által javasolt megoldás jó, de a a new Date(yyyy,MM,dd) mintha deprecated lenne...
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateInString = "2014-01-01";
Date date = sdf.parse(dateInString);És utána jöhet a Level, ahogy a kolléga javasolta, csak a létrehozott dátummal.
-
axioma
veterán
válasz
plaschil #5367 üzenetére
Vagy marad a keyset es x.get(e)-vel elkered a map-tol a kulcshoz tartozo part. Nem mondom, hogy ez itt most jobb, de azert ez az alap hasznalati mod. Termeszetesen ha kozben modositgatnad, itt is igaz a concurrent mod.ex. megjegyzes.
amugy ertem hogy ez csak egy pelda, de ha nem egybetus valtozoneveid lennenek, akkor jobban latni lehetne szerintem, hogy ki mivel mit csinal - most en is 2x kellett visszagorgessek ra, sot ha egy het mulva nezed, neked magadnak is vissza kene keresned... -
PandaMonium
őstag
válasz
plaschil #5365 üzenetére
Az x.keySet() -el csupán a kulcsokról kapsz egy Set-et, nem pedig a teljes kulcs-érték pár listáról.
A teljes kulcs-érték pár készletet az x.entrySet() metódussal tudod lekérni és utána végig tudsz rajta menni egy for/foreach loop-al valahogy így:
for(Entry<String, Integer> e : x.entrySet()){
if(e.getValue() == 0){
String kulcs = e.getKey();
// Itt csinálj valamit a kulccsal
}
}Személy szerint én viszont az iterátorokat javasolnám, ugyanis ha egy entry set-en vagy listán keresztül mész épp egy foreach loop-al ConcurrentModificationException-t ha törölni próbálsz a listából egy elemet. Ilyen szempontból jók az iterátorok amelyek képesek megjelölni az objektumokat törlésre és amint vége az iterálásnak az elemeket valóban ki is törli.
Ez a fajta megoldás sem sokkal bonyolultabb:
Iterator<Entry<String, Integer>> iterator = x.entrySet().iterator();
while(iterator.hasNext()){
Entry<String, Integer> e = iterator.next();
if(e.getValue() == 0){
// Példa a törlésre
iterator.remove();
}
}
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- TCL LCD és LED TV-k
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Luck Dragon: Asszociációs játék. :)
- ASUS routerek
- Autóápolás, karbantartás, fényezés
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Samsung Galaxy S25 - végre van kicsi!
- KODI (ex-XBMC) Android alapokon, Androidos media-boxok
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Borderlands 4
- További aktív témák...
- Lenovo ThinkPad L15 Gen 1 i5 / 16GB RAM / 256GB SSD / FHD IPS / 4G modem
- Lenovo ThinkPad E15 Gen 3 Ryzen 5 / 16GB RAM / 256GB SSD / FHD IPS / 1GB dedikált VGA
- Lenovo ThinkPad X1 Yoga Gen 3 i7 / 16GB / 512GB SSD / 2 az 1-ben érintőkijelző / WQHD IPS
- Lenovo ThinkPad T14s i7 / 32 GB RAM / 256 GB SSD / Full HD IPS
- HP EliteBook 650 G9 12. generációs i5 / 16GB RAM / 256GB SSD / FHD
- Honor X7 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Xiaomi Redmi Note 14 Pro 5G 8/256GB / 12 hó jótállás
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 256GB SSD I 15,6" I W10 I HDMI I Cam I Gari!
- Intel Core i5 4440 4mag 4szál processzor garanciával hibátlan működéssel
- ÖNERŐ NÉLKÜL, 12 RÉSZLETRE ELITRO PC BANKMENTES KAMATMENTES RÉSZLETFIZETÉS
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest