- Redmi Note 13 Pro+ - a fejlődés íve
- Samsung Galaxy A54 - türelemjáték
- Készülőben a Xiaomi 2021-es csúcsmodelljeinek HyperOS frissítése
- Yettel topik
- Oppo Find X5 Pro - megtalálták
- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Fotók, videók mobillal
- Azonnali mobilos kérdések órája
- Honor Magic5 Pro - kamerák bűvöletében
Hirdetés
-
Saját Redmi Note 13 Pro+ a világbajnok focicsapatnak (és indiai rajongóiknak)
ma Argentína nemzeti válogatottjának mezével díszítik az új Redmi különkiadást.
-
Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
it Egyre nagyobb probléma az AI hallucinálása – most az osztrák adatvédelmi hatóság veheti elő a ChatGPT miatt az OpenAI-t, alapvetően a GDPR megsértése miatt.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
Új hozzászólás Aktív témák
-
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.
-
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();
}
}[ Szerkesztve ]
-
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
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.
[ Szerkesztve ]
-
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);[ Szerkesztve ]
-
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"));
[ Szerkesztve ]
-
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
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
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 #2771 üzenetére
Beírtad a projekt nevét?
-
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
-
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
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 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");[ Szerkesztve ]
-
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 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 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
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.
[ Szerkesztve ]
-
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
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.
[ Szerkesztve ]
-
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[ Szerkesztve ]
-
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
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?");
[ Szerkesztve ]
-
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
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.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen routert?
- Azonnali alaplapos kérdések órája
- PlayStation 5
- Redmi Note 13 Pro+ - a fejlődés íve
- Hagyományos és extrém roller, kickbike, Boardy topik
- gban: Ingyen kellene, de tegnapra
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- LEGO klub
- További aktív témák...