- Yettel topik
- India felől közelít egy 7550 mAh-s Redmi
- Karaktere biztos lesz az első Nothing fejhallgatónak
- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
- Google Pixel 9 Pro XL - hét szűk esztendő
- Realme GT Master Edition - mestermunka
- Nem lett arányos a fogyókúra
- Samsung Galaxy A55 - új év, régi stratégia
- iPhone topik
- Poco F3 - a mindenes, de nem mindenkinek
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
válasz
Peter Kiss #3373 üzenetére
Meg persze ha változik az interface, az adaptert módosítani kell. Semmiképpen nem lehet megúszni azt, hogy másik osztályt ne kelljen átírni.
-
WonderCSabo
félisten
válasz
Gyuri16 #3362 üzenetére
Azért meg lehet oldani simán a thread-safe legyen, általában ezt szoktam használni:
public class Singleton {
private Singleton() { }
private static class SingletonHolder {
public static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
} -
WonderCSabo
félisten
Ott vmi gáz lesz, mert a SwingWorkernek pont az a lényege, hogy a doInBackground fv, amit az execute hív meg, egy külön szálon fut le.
Cím:
UIManager.put("ProgressMonitor.progressText", "Progress title?");
-
WonderCSabo
félisten
Sztem meg kell találni a kompromisszumot az enkapszuláció stb. megvédése és a józan kód között. Például sztem az ocsmány, ha az összes elem hozzáadására nem biztosítasz fv-t, hanem a hívóra hagyod azt, csomó kód duplikációt stb eredményezve, pedig ezt gyakori feladatot az adott osztálynak kéne biztosítania.
-
WonderCSabo
félisten
válasz
Peter Kiss #3311 üzenetére
Már hogy ne lehetne?
public void setTires(List<Tyre> t) {
this.tires.clear();
this.tires.addAll(t);
}Meghívod így:
List<Tyre> l = new ArrayList<>();
l.add(new Tyre(10));
car.setTires(l);
l.get(0).changeTyre(); // ez a fv. megváltoztatja az Tyre-t valamilyen módon
// a Car-ben ugyanerre van referencia, tehát abban lévő is megváltozik -
WonderCSabo
félisten
válasz
Peter Kiss #3309 üzenetére
Így is lehet kívülről változtatni, csak nem az egész listát egyben, hanem kerekenként.
-
WonderCSabo
félisten
Nyilván szeretett volna egy olyan metódust, ami egyszerre az összes kereket lecseréli. A setTires nevéből is ítélve én ezt így csináltam volna:
public class Car {
private List<Tyre> tires = new ArrayList<Tyre>();
public void setTires(List<Tyre> t) {
this.tires = t;
}
// Egyéb lekérdező metódusok
} -
WonderCSabo
félisten
A Java mindenhol referenciákat használ (kivéve a primitív típusokat, de itt most nincs olyan). Feltételezem a car.getTires() fv. car.tires listát adja vissza. Mivel referenciákról van szó, ekkor a main lokális változója, a carTires illetve a car.tires mező ugyanarra az objektumra fog mutatni. Ezután átadod a car.setTires(carTires) - el a carTirest, ami törli a belső saját listát. De a carTires is a belső listára mutat, tehát ugyanazt a listát törlöd ki! Ezután hozzáadod a belső listához ugyannak a már üres listának az elemeit, nyilván továbbra is üres marad.
Ez egy ismert jelenség, és direkt kitaláltak rá olyan mintákat, amivel ezt el lehet kerülni. Az egyik ilyen megoldás a defensive copy.
-
WonderCSabo
félisten
válasz
pakriksz #2824 üzenetére
Próbáld meg így:
try {
URL u = new URL("http://wikipedia.org");
URLConnection uc = u.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(uc.getInputStream())));
System.out.println(br.readLine());
} catch (IOException e) {
e.printStackTrace();
} -
WonderCSabo
félisten
válasz
SektorFlop #2809 üzenetére
Nem ismerem az Android GUI elemeket, így erre nem tudok megoldást mondani.
(Ha vmi sima panel lenne, akkor triviális megoldásként beraknék egy újabbat alá sortörés esetén)
-
WonderCSabo
félisten
válasz
Taoharcos #2806 üzenetére
Sztem a két kód között vagy kapcsolat van, és a másodikra vonatkozott, hogy állítólag nem fut le.
RexpecT: Tuti lefut az, csak max Te nem látod az eredményét, mert hibás a logika. Rakj oda egy breakpointot és debugoljad, vagy az initLoad() fv. első sora legyen egy syso hívás, és meglátod, hogy lefut-e a fv.
-
WonderCSabo
félisten
válasz
Chipi333 #2799 üzenetére
Köszi a választ, én is pont ezt a megoldást ötleteltem ki magamban. Persze igazából reménykedtem, hogy vmi high level pool jó lesz nekem ehhez, de sajnos különböző okok miatt saját megoldást kellett használnom.
SektorFlop: Én a setIndicator() fv-edet nem tudom, hogy mit csinál, de a String -ben így tudod kicserélni a szóközt sortörésre:
String s = "sor tores";
s = s.replace(" ", "\n"); -
WonderCSabo
félisten
Sziasztok!
Most nekem is lenne egy kérdésem. Threadeket tárolok egy konténerben. Idővel, a threadek egy része még mindig fut, másik része már meghalt. Kérdésem az lenne, hogy hogyan lehetne legértelmesebb módon automatikusan (vagy periodikusan) ezeket a halott Threadeket eltávolítani a konténerből?
-
WonderCSabo
félisten
válasz
King Charles #2788 üzenetére
public class Stopper {
private long startTime;
public static void main(String[] args) {
Stopper stopper = new Stopper();
stopper.start();
try {
Thread.sleep(4000);
// itt dolgozik vmit a progid
} catch (InterruptedException e) {
}
System.out.println("elapsed: " + stopper.stop() / 1000 + " seconds");
}
public void start() {
startTime = System.currentTimeMillis();
}
public long stop() {
return System.currentTimeMillis() - startTime;
}
} -
WonderCSabo
félisten
-
WonderCSabo
félisten
válasz
RaPiDsHaRe #2773 üzenetére
Direkt JPA projectet akarsz csinálni? Én személy szerint azt sem tudod, mi ez a JPA. Eclipse-ben simán File -> New -> Java project
-
WonderCSabo
félisten
válasz
RaPiDsHaRe #2771 üzenetére
Beírtad a projekt nevét?
-
WonderCSabo
félisten
válasz
RaPiDsHaRe #2769 üzenetére
Nem kell next next. Beírod a projekt nevét, és alul megnyomot a Finisht és kész is vagy.
-
WonderCSabo
félisten
válasz
RaPiDsHaRe #2767 üzenetére
Mindenképpen ebből a kettőből választanék. Igazából mindkettő elég hasonló, és mindkettőhöz lehet pluginokat is feltelepíteni a funkcionalitás bővítéséhez. Én az Eclipset személy szerint jobban szeretem, számomra egyetlen hátránya, hogy a Swing GUI buildre gagyibb a NetBeansesnél. Sztem próbáld ki mindkettőt.
-
WonderCSabo
félisten
Előbb véletlenül osztályt írtam. Tehát a getClass() az objektum sémáját, mintáját, az osztály leírását adja vissza. Nem a this - ét, azt amelyik objektumra meg lett hívva. Pl. ezt is lehetne:
String s = "dfdf";
s.getClass();Csak az előbbi példakódban pont a this - re lett meghívva.
-
WonderCSabo
félisten
Név és kiterjesztés is kell, minden fájl esetén, minden programozási nyelvben.
A getClass() - al pedig egy osztály sémáját tudja lekérdezni (jelen esetben a this - ét), és ennek metódusaival, mezőivel, stb. tud machinálni. Itt a JAR-ban lévő resource kinyerése miatt kellett a getResourceAsStream() meghívásához.Egyébként külső fájl esetén ilyen egyszerű létrehozni egy Scanner objektumot:
Scanner sc = new Scanner(new File("a txt neve"));
-
WonderCSabo
félisten
válasz
WonderCSabo #2675 üzenetére
Most vettem észre, hogy a Lacess által mutattot kód egy C# kód. Nagyon gyanús volt nekem, és igazam lett: az a kód Javában le sem fordul, és nem a C#-os szintaktika és függvénynevekre gondolok, hanem Javában az ilyen fajta implicit castolás nem engedélyezett, a nem generices collection esetén, hiszen semmi sem garantálja, hogy valóban ilyen típusú elemek vannak benne. Természetesen az explicit castolás lehetséges, és ilyen rossz típus esetén exceptiont is dobál a Java. Tehát helyesen:
ArrayList<Ember> list = new ArrayList<Ember>();
list.add(new Ember());
list.add(new Ember());
list.add(new Ember());
for(Ember ember : list)
System.out.println(ember); -
WonderCSabo
félisten
válasz
JokerStars #2673 üzenetére
Lacess által ajánlott ArrayList teljesen jó a célra. A generikus megoldás jobb, mert ha csak egyféle elemet tárolsz, akkor biztosított, hogy nem raksz bele mást, és nem kapsz vmi expcetiont a castoláskor.
-
WonderCSabo
félisten
Az öröklődés azt jelenti, hogy a gyerek mindent örököl az ősétől. Csak egyes dolgokat nem tud közvetlenül elérni.
A gyermek megtudja hívni az elfedett statikus adatmezőket és metódusokat?
Az elfedés pont azt jelenti, hogy az ami az ősben volt, azt nem látszik a gyerekben, mert azokat új metódusok elrejtik. Az elrejtő metódusokat tudod meghívni a gyerekben.
-
WonderCSabo
félisten
Mivel a statikus metódus magára az osztályra vonatozik, nem a példányra, ezért az osztályra hivatkozva szokás elérni, és nem is kell példányosítani hozzá az osztályból egy objektumot sem.
class MyClass {
static public void func() {
System.out.println("Hello World!");
}
}
public class Main {
public static void main(String[] args) {
MyClass.func();
}
} -
WonderCSabo
félisten
Hello!
Próbálkozott itt vki Eclipse Subversive alá 1.3.7-es (tehát SVN 1.7-et támogató) SVNKitet felrakni? Mert sajnos nekem nem sikerült.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Robogó, kismotor
- Anime filmek és sorozatok
- Xbox Series X|S
- Linux kezdőknek
- Yettel topik
- Autós topik látogatók beszélgetős, offolós topikja
- Kertészet, mezőgazdaság topik
- Kerékpárosok, bringások ide!
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Rábólintott az EU, eltakarítja az illegális termékeket az AliExpress
- További aktív témák...
- Dell Latitude 5400, 14" FHD Touch, I7-8665U CPU, 16GB DDR4, 256GB SSD, W11, 1 év garancia
- GAMER PC - RTX 4070 Ti - Ryzen 7 5700x - 32GB DDR4 - 1TB Nvme SSD
- LOQ 15ARP9 15.6" FHD IPS Ryzen 7 7435HS RTX 4060 32GB 512GB NVMe gar
- Steam Deck LCD 512GB + Kiegészítők
- Hp Elitebook 840 G8 CSAK 1DB POFÁTLAN ÁRON ÚJ KIJELZŐ!!!!
- BESZÁMÍTÁS! 32GB (2x16) G.Skill Trident Z RGB 6600MHz DDR5 memória garanciával hibátlan működéssel
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 55992Ft+ÁFA
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- Csere-Beszámítás! Felsőkategóriás számítógép PC Játékra! I9 13900KF / RTX 4080 / 32GB RAM / 1TB SSD
- 10% -tól elvihető.Országosan a legjobb BANKMENTES részletfizetési konstrukció! ACER PREDATOR HELIOS
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest