Hirdetés
- Yettel topik
- Fotók, videók mobillal
- Tényleg háromra szűkül a Xiaomi 17 Ultra kameráinak száma
- One mobilszolgáltatások
- Nem lesz olcsó a Realme GT 8 Pro Európában
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Bemutatkozott a Poco X7 és X7 Pro
- Fele annyit ér az iPhone Air, mint amennyibe pár hete került
- Android szakmai topik
- Xiaomi 15T Pro - a téma nincs lezárva
Ú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
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Dobozos új MSI B650 GAMING PLUS WIFI 6E antennával, io shielddel, garanciával
- ÚJSZERŰ Feiyutech G6 Plus gimbal ELADÓ
- ASUS TUF Z790-PLUS WIFI garival, mindennel, dobozos újszerű, PCIe gen5
- Dobozos Z790 AOURUS ELITE AX PCIe gen5, újszerű gyári antennával garival
- ÚJSZERŰ MSI PRO Z790 A MAX WIFI 7 PCIe gen5
- Designer 4K Monitor - BenQ PD-2700-U
- KIÁRUSÍTÁS - HP Elite / ZBook Thunderbolt 3 Dock (akár 2x4K felbontás)
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- 5G LTE! Microsoft Surface Pro 8 i7-1185G7 16GB 512GB 1 év garancia
- Lenovo ThinkPad // T - Széria // X1 carbon // X1 Yoga 2-in-1 // és a többiek... 3-12. gen.
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

(Ha vmi sima panel lenne, akkor triviális megoldásként beraknék egy újabbat alá sortörés esetén)


