- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Rég várt frissítést kap az Android tárcsázója
- Poco F8 Ultra – forrónaci
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
- Apple Watch
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Nagy bemutatóra készül az Oppo
- Szaporodik és sokasodik a One UI 8.5
- Huawei Watch Fit 5 Pro - jó forma
- Okosóra és okoskiegészítő topik
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Ablakos
addikt
Ha futtatod, akkor is illik megadni a függőségeit a classpath-on, különben nem tudja használni.
java -cp ".:/src/java/CSV/opencsv-5.12.0.jar" AddressExample
A . az aktuális könyvtár, a : pedig a linuxos separator, amikor több elemet sorolunk fel.A classpath eclipse-ben is bekonfigolható valahogy. Jobb klikk a projektre, properties, és akkor ott valamelyik tabon be lehet tallózni a jar fájlt, amit akarsz, hogy lásson a projekted fordításkor meg futtatáskor. Asszem.
Ez a megoldás. Ráadásul ApacheCommonLang függőség is van futtatáskor, de az adott instrukciód alapján már fut is a Móricka programom.
(Szénné olvastam a netet, de ezt a separátort nem vettem sehol észre.) Mindenhol a függőségkezelést erőltetik, de szeretném kézzel-lábbal összekínlódni az alkotást.Köszi mindenkinek a segítséget.
-
Ablakos
addikt
Elnézést, természetesen elírtam.
/srv/java/CSV/opencsv-5.12.0.jar
A lényeg, hogy lefordult. (néhány warning-gal, de most ezen átlendülök)
Előállt a .class.
Meghívom: $ java AddressExample
ExampleException in thread "main" java.lang.NoClassDefFoundError: com/opencsv/CSVReader at AddressExample.main(AddressExample.java:35)Caused by: java.lang.ClassNotFoundException: com.opencsv.CSVReader at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)Ugyanaz mint eclipsben. Lefordul, de futás alatt nem találja a hivatkozott external .jar fájlt.
-
Ablakos
addikt
A tények: Ubuntu, Temurin java.
$ java --version
openjdk 25.0.1 2025-10-21 LTS
Szeretném /home/Downloads/AddressExample.java forrást lefordítani terminálban. A forrásnak van egy függősége. Ez lenne a terminal parancs: javac --source 8 --target 8 -cp "/srv/java/OCP/opencsv-5.12.0.jar" AddressExample.java
Az eredménye.(Eclipsben (Ant) ugyan lefordul, de futtatni már nem sikerül. java.lang.NoClassDefFoundError: com/opencsv/exceptions/CsvException )
Elsősorban terminálban szeretném megtanulni a fordítást (külső függőséggel), és a futtatást.
-
Ablakos
addikt
OCP hülyít ezzel a tudással. A kiexportált futtatható .jar persze jól működik.Sehol nem találtam megoldást, hogy miért nem tudja az IDE ezt kezelni.
-
Ablakos
addikt
Console con = System.console();
Eclipse-ben null érték a console referencia. Hogy lehet ezt rendbe tenni, mert nem tudok továbblépni a metódusban? -
Ablakos
addikt
Lehet, hogy nem igazán java kérdés...
Eclipseben nem tudok létrehozni ékezetes objektumneveket. Éppen egy osztály névvel presentálom a hibát.
A workspace utf8 kódolásra van állítva. A fájlrendszerre nem tudja kiírni az IDE a nevet. Mit lehet ezzel tenni? -
Ablakos
addikt
Van valamilyen érdembeli különbség az OpenJDK, Temurin, OracleJDK között? Vagy csak licensz ok a választás?
-
Ablakos
addikt
Az OCA csak "to save memory" -val lerendezi, de ezt az integer pool-t nem említi és nem is tudtam, hogy intre is van.
Köszi mindenkinek! -
Ablakos
addikt
public class Wrap {public static void main(String[] args) {Integer i1 = 1000; // 10Integer i2 = 1000; // 10if (i1 == i2) System.out.println("same");if (i1 != i2) System.out.println("different objects");// System.out.println((i1 != i2) + " " + (i1 == i2) + " " + i1.equals(i2)); }}Nem értem , miért különböző 1000 vagy 10 értékre futtatva az összehasonlítás?
-
Ablakos
addikt
Mindig az API Javadoc aktuális verzióját nézegetem, de ezeket eddig nem figyeltem. Köszönöm mindenkinek.
-
Ablakos
addikt
Szeretném az instanceof operátort megtalálni a jdk doc-ban. (Amit lehet erről tudni.) Semmilyen találatot nem kapok. Hogy kell ezt megkeresni?
-
Ablakos
addikt
Igen, így teljesen pontos. Érdemes egyébként full 1.8-as JDK-t is felrakni, ha full 1.8-as kompatibilitás kell. Az a tuti.
Igen, erre jutottam végül. Ha 15 felett kikerült a javascript a jdk-ból, hiába kérek 1.8-as kódot a 23 -asban.
Köszönöm mindenkinek.
-
Ablakos
addikt
Egy compiler option kérdésem van. Mivel >15-ös jdk-ból kikerült a java script motor visszatértem a 8-as openjdk-ra. Ha 23-as jre környezetben, de 1.8 (8-as java) kódot állítok akkor nem teljesen 8 -assal megegyező kódot kellene kapnom?
-
Ablakos
addikt
Valószínűleg azért találja meg a második megoldásod, mert ott explicite kikötöd neki, hogy az src-ben keresse a fájlt, és ugyanezen okból hiszem azt, hogy az az
Excluded: resources/lesz a ludas.Ugyanis ezzel azt mondod az ecplise compilerének, hogy a resources mappát hagyja figyelmen kívül, ne tegye át a bin alá, és amikor futtatod, valószínűleg a kódod a bin-ben keresi a fájlt. Töröld azt az exclusiont, ellenőrizd, hogy átkerültek-e a fájlok a bin-be a fordítás során, és hogy működik-e immáron az első megoldás. Remélem igen, mert ha nem, akkor hülyeséget beszélek.
Igen, ez volt a megoldás. Eddig nem nyitottam le source folder fát. Nem tudtam, hogy ilyen szűrők vannak itt.
Köszönöm!!!
-
Ablakos
addikt
Csak érdekes, hogy ez a kód az idézett URL-es kódom helyett már nem dobja a null kivételt.
String fxmlDocPath = "file:src/resources/fxml/sayhello.fxml";URI uri = new URI(fxmlDocPath);URL fxmlURL = uri.toURL();De visszatérve az eredeti minta részletre a BuildPath
-
Ablakos
addikt
-
Ablakos
addikt
Miért nem talál erőforrást az URL objektum? A buildPath: /src
(8-as javafx-re van a tutorial, de 23-ast használok)@Overridepublic void start(Stage stage) throws IOException {// Construct a URL for the FXML documentURL fxmlUrl = this.getClass().getClassLoader().getResource("resources/fxml/sayhello.fxml");// Load the FXML documentVBox root = FXMLLoader.<VBox>load(fxmlUrl);Scene scene = new Scene(root);stage.setScene(scene);stage.setTitle("Hello FXML");stage.show();}Ez a project fa.
-
Ablakos
addikt
Az, hogy valaki megír helyettem dolgokat, és én azt sajátként adom el, az kis kapu.
Én hobbiból csinálom. Teljesen más a célom mint pl neked.
Ezért nem értesz. Illetve ezen felül én más szempontból is teljesen más vagyok mint az átlag.
Ezek miatt teljesen félre érted a dolgokat. Amit megértek, és semmi gond.
Megpróbálom elmagyarázni:
Van aki vesz egy modell készletet, és profi módon gyönyörűen össze rakja, festi stb és a végeredmény kiállításra kerül.
És van aki vesz pár gyufát, kiborítja, vagdal, ragasztgat, és ha kész kirakja a polcra, amit csak a család lát. Nem profi munka, és nem bámulják millióan, de más volt a cél.
Ha a gyufás srác a profitól kérdez a neten a profi a nem fogja érteni hogy miért nem hallgatja meg a műanyag ragasztásáról.
Meghallgatta, csak neki nem kell műanyag, se airbrush.
Bocsánat a bugyuta magyarázatért
A github oldalon rengeteg project van, amelyeket csak be kell húzni az android studióba. Azokból (főleg az egyszerűbbekből) nagyon sokat lehet tanulni kezdőként. A semmiből alkotni elég nehézkes és sok a kudarc. (A művészet is az utánzással kezdődik.)
-
Ablakos
addikt
Sehogy nem bírom a map első generikus típust stringre kényszeríteni. Mindenképpen az Object-et erőlteti. Object típussal működik, de nem értem a pontos megoldást.
Stream<String> input = Files.lines(Paths.get("words.txt"));Map<String, List<String>> a = // csak Objectként fordul le String helyettinput.map(line -> line.split(" ")).flatMap(array -> Arrays.stream(array)).collect(Collectors.groupingBy(d -> d.charAt(0)));/* .forEach((c, dl) -> {
System.out.print("first character: " + c + " =>");
dl.forEach(d -> System.out.print(d+ ", "));
//System.out.println();
});
*/Elnézést, tárgytalan.
Csak egy üres stringet kell hozzá toldani a charAt+hez. Ezt nagyon elnéztem.
-
Ablakos
addikt
Sehogy nem bírom a map első generikus típust stringre kényszeríteni. Mindenképpen az Object-et erőlteti. Object típussal működik, de nem értem a pontos megoldást.
Stream<String> input = Files.lines(Paths.get("words.txt"));Map<String, List<String>> a = // csak Objectként fordul le String helyettinput.map(line -> line.split(" ")).flatMap(array -> Arrays.stream(array)).collect(Collectors.groupingBy(d -> d.charAt(0)));/* .forEach((c, dl) -> {
System.out.print("first character: " + c + " =>");
dl.forEach(d -> System.out.print(d+ ", "));
//System.out.println();
});
*/ -
Ablakos
addikt
-
Ablakos
addikt
Mi a különbség két referencia között new ArrayList vagy anélkül?
Human jenny = new Human(18, "Jenny");Human jeff = new Human(17, "Jeff");Human jill = new Human(21, "Jill");List<Human> people = new ArrayList<>(Arrays.asList(jenny, jeff, jill)); -
Ablakos
addikt
Végig szöszöltem az OCP idevonatkozó részét, és most fedeztem fel, hogy átléptem a
"If the catch or finally block throws an exception, no suppressions
happen" elég fontos szabályt. Ezen értetlenkedtem.
-
Ablakos
addikt
Automatic Resource Management
A try utáni zárójelben felsorolt erőforrásokat automatikusan be tudja zárni a JVM. (catch, finally ág nélkül is müködik szintaktikailag)
Elvárás, hogy az itt felsorolt objektumoknak az Closeable() vagy az AutoCloseable interfészt kell implementálni. -
Ablakos
addikt
téma: kivételkezelés
Nem értem, hogy miért csak az utolsó except. jelenik meg a konzolon. Hova lesz a resource manager close és a try IOException üzenet?import java.io.Closeable;
import java.io.IOException;public class Animals {
class Lamb implements Closeable {@Override
public void close() throws IOException {
throw new RuntimeException("a");
}
}
public static void main(String[] args) {
new Animals().run();
}
public void run() {
try (Lamb l = new Lamb()) {
throw new IOException();
} catch (Exception e) {
throw new RuntimeException("c");
}
}
} -
Ablakos
addikt
-
Ablakos
addikt
Nagyon nem java, de megpróbálom...
Idézet az OCP-ből
Develop code that declares, implements and/or extends
interfaces and use the @Override annotation (sic*).
Mit akar jelenteni ez a sic a mondat végén? -
Ablakos
addikt
Egy tömb referencia változó kiíratása konzolra hasonló [I@85ede7b eredményt ad. Valamire (mire) használható ez a hieroglifa?
-
Ablakos
addikt
-
Ablakos
addikt
Van egy osztály (App) ami implementál két interfészt. Mindkét interfésznek van egy ugyanolyan nevű default metódusa.(default void doStuff(){})
Az osztályban hogyan tudom hívni a kívánt default metódust?(new App().doStuff(); természetesen fordítási hibát ad)
-
Ablakos
addikt
Nem hinném, hogy máshogy kéne fordítani. De nem lehet, hogy valamelyik Java verzióban változott a viselkedés? Melyik verzióval fordítasz? Ki tudsz próbálni másikat is?
Rövid utánanézés után mintha a Java 11-ben lett volna ezzel kapcsolatos módosítás? Hányas Java OCP-t nézel és milyen JDK-val fordítasz?
Igen, erre nem gondoltam.
Mármint a JRE verzió váltással (19.01 -> 1.8) mindjárt előállt a két class.
Én mindent 19-es java környezettel használok, ez pedig egy OCP 8-as study guide.Köszönöm !
-
Ablakos
addikt
Az OCP jó megoldása szerint a következő forrásra két byte kód generálódik
(Book.class and Book$BookReader.class):public class Book {private int pageNumber;private class BookReader {public int getPage() {return pageNumber;}}}
Kipróbáltam, de nekem csak a Book.class keletkezik eclipse buildre ( vagy javac cli-ben). Valamit félreértek vagy máshogy kell fordítani ezt a kódot? -
Ablakos
addikt
Értem, köszi. Objektum változóknál a final csak a referenciát nem engedte módosítani.
Próbáltam nem lambda eseményénykezelővel (anonym osztályossal), de az is elhajtott hasonló hibával.
Az Atomic-ost kipróbálom. -
Ablakos
addikt
(javafx)
A Scene eseménykezelőben, hogy tudom írni a lambda kif. kívüli változókat?double shipAngle = ship.getRotate();scene.setOnKeyPressed(event -> {if (event.getCode() == KeyCode.LEFT) {shipAngle +=-10;//ship.setRotate(shipAngle);}if (event.getCode() == KeyCode.RIGHT) {ship.setRotate(10);}}); -
Ablakos
addikt
A java.util alatt van Dictionary osztály.
Ha perverz módon saját Dictionary osztály készítek, akkor hogy tudom leírni, hogy ez a Dictionary az én általam készített legyen, ne a beépített?public class InputView {private Dictionary dictionary;public InputView(Dictionary dictionary) {this.dictionary = dictionary;}Inkompatibilis típus miatt jogosan nem fordul le.
@Overridepublic void start(Stage stage) throws Exception {InputView inputView = new InputView(dictionary);Már nem aktuális.
Beletoltam nevesített package-be mindent, így már tudtam csomag.osztály névvel hívni.
-
Ablakos
addikt
A java.util alatt van Dictionary osztály.
Ha perverz módon saját Dictionary osztály készítek, akkor hogy tudom leírni, hogy ez a Dictionary az én általam készített legyen, ne a beépített?public class InputView {private Dictionary dictionary;public InputView(Dictionary dictionary) {this.dictionary = dictionary;}Inkompatibilis típus miatt jogosan nem fordul le.
@Overridepublic void start(Stage stage) throws Exception {InputView inputView = new InputView(dictionary); -
Ablakos
addikt
Kicsit belezavarodtam, hogy is kell megfogni az elemeket a következő tömbben. Szeretnék egy stream-es kiíratást. (egy sor egy tömbelem, kiírva a list akármennyi osztály elemét)
A Pair-nek van toStringje.private List<Pair<K, V>>[] values; -
Ablakos
addikt
Szeretnék egy Map<String,String> objektumot visszaadni úgy, hogy ne legyen benne key-value duplikáció.
Pontosabban a key-value ne legyen inverzen sem dupla.i.e
tietokone:computer vagy computer:tietokone mindegy, de csak egyféleképpen kerüljön vissza.Próbáltam az eredeti mapet és az inverz map-et összefűzni és ebből a halmazból csak a putIfAbsent megy vissza, de lehet van ettől jobb megoldás.
-
Ablakos
addikt
Volt már hasonló kérdésem saját osztállyal. (ősosztály metódus elérés, override)
Azt még mindig nem értem, hogy beépített osztályoknál mi a különbség a list1-list2 között, ha az egyiket List-be a másikat ArrayList típusba teszem. (ez a kérdés akár a Map/HahMap -re vonatkozhatna)
List<String> list1 = new ArrayList<String>();ArrayList<String> list2 = new ArrayList<String>(); -
Ablakos
addikt
Még egy kis kiegészítés a comparator implementációhoz.

Ha nagyon nagy számokkal dolozunk, akkor nem szerencsés a kivonásos módszer használata, pl. ap1.getLiteracyRate() - p2.getLiteracyRate(). Ugyanis ha egy nagyon negatív számból kivonunk egy nagyon pozitív számot, akkor az eredmény túlcsordulhat és átcsap az ellenkező előjelbe, ami nyilván elrontja az egész sorrendezést.
Érdemes inkább a relációs operátorokat (<, >) használni a kivonás helyett.(Most nincs lehőségem kipróbálni, ezért kérdezek.
)Ebben az esetben az intermediate egy int eredményt vár, hogy sortolja a stream-et. A kacsacsőr boolean-t ad vissza. Vagy ezt az igaz/hamis értéket még vizsgálni kell operátorral? Így kell érteni?
-
Ablakos
addikt
-
Ablakos
addikt
Elakadtam a következő stream soron:
ArrayList<Literacy> list = new ArrayList<>();try {Scanner scanner = new Scanner(Paths.get("literacy.csv"));while (scanner.hasNextLine()) {String[] line = scanner.nextLine().trim().split(",");list.add(new Literacy(line[0],line[1],line[2],line[3],Integer.valueOf(line[4]),Double.valueOf(line[5])));}} catch (IOException ex) {System.out.println(ex);}list.stream().sorted((p1, p2) -> {return p1.getLiteracyRate() - p2.getLiteracyRate();}).forEach(l -> System.out.println(l));
A fordítási hibaüzenet: incompatible types: bad return type in lambda expression
possible lossy conversion from double to int
ALiteracyosztályban agetLiteracyRatedouble típus.Nem értem mi a baja két double kivonásával és visszaadásával? (int-el működne, de nem az a feladat)
-
Ablakos
addikt
Megismerkedtem a "stream" technikával. Nagyon tetszik tizen- sorok helyett egy utasításba lefűzni a kódot.
A kérdésem, hogy ez a tömörség csak a forráskódot érinti, vagy a lefordult
bájtkód/végrehajtási sebességet is gyorsítja?
(Biztos össze lehet hasonlítani méréssel, de nem akarom feltalálni a kereket.
) -
Ablakos
addikt
Köszönöm mindenkinek. Teljesen fordítva gondoltam az .anyMatch kiértékelést. Addig megy amíg igaz nem lesz a kiértékelése

-
Ablakos
addikt
Egy kis stream alap...
A végrehajtásban a .map upperCase -ként fűzi, adja tovább a stream elemet. Ez eddig érthető(számomra). Az .anyMatch -nél nem értem, hogy a kiértékelt boolean eredmény mit jelent. A következő stream ciklusban megint az eredeti következő stream elem lesz manipulálva.
Hogy is van ez?Stream.of("d2", "a2", "b1", "b3", "c").map(s -> {System.out.println("map: " + s);return s.toUpperCase();}).anyMatch(s -> {System.out.println("anyMatch: " + s);return s.startsWith("A");});// map: d2// anyMatch: D2// map: a2// anyMatch: A2 -
Ablakos
addikt
Itt a gc egy példányszintű metódus (instance method), ami késői kötést (late/dynamic binding) használ, így a Counter futásidejű típusa határozza meg, hogy melyik gc() metódus implementáció hívódik meg (polimorfizmus). Ha SubCounter újradefiniálta (override) a gc()-t, akkor ha a list változód futás idejű típusa SubCounter, akkor az override-olt változat fog hívódni, nem tudod meghívni a Counter gc() metódusát azon a példányon keresztül.
(azért írtam zárójeleket, hogy jobban utána tudj nézni ezeknek a fogalmaknak)
Világos, köszönöm.
-
Ablakos
addikt
Adott egy Counter és SubCounter, amely extendálja a Countert. Mindegyikben egy gc() methódus. A kérdésem, hogy a ciklusban (kérdőjeleknél), hogyan tudom az override-olt ősosztály gc()-t hívni?
ArrayList<Counter> cList = new ArrayList<>();cList.add(new SubCounter());cList.add(new Counter());for(Counter list:cList) {System.out.println(list.gc());??????????????} -
Ablakos
addikt
-
Ablakos
addikt
-
Ablakos
addikt
A
partreferenciája nem szűnik meg, ha arra gondoltál. A belepakolt Stringeket a clear ugyan eltávolítja a listából, de apartél és virul. Egy referencia akkor szűnik meg, amikor semmilyen más élő objektum nem hivatkozik rá (mert mondjuk az utolsó hivatkozást is felülcsapod valami más referenciával).
Na meg a vezérlés kifutott a scope-jából is, ami a part esetén a metódus kapcsos zárójelei között található. (Ha a while ciklus kapcsos zárójelei közé tennéd a part deklarációt, akkor az lenne az ő scope-ja és minden körben új példány készülne belőle, de azt most nem akarod.)A csoda a
listRecipes.add(new Recipe(part));soron történik, apartreferenciáját megjegyzi a recipe ojjektum is - immáron nem csak apartváltozó fog arra hivatkozni -, az ő referenciáját pedig beledobjuk alistRecipeslistába, így az már nem vész el addig, amíg alistRecipeslétezik.Tehát a clear helyett bátran csinálhatsz egy új lista objektumot a
partváltozódnak, sőt illene is, ha nem akarod piszkálni a régi lista tartalmát, ami már alistRecipesbugyraiban pihen.Köszönöm, teljesen világos. Tehát a part.clear() helyett egy part = new ArrayList<>() a megoldás.
(Sajnos az elmélet és a gyakorlat még nincs szinkronban nálam.
Tudom, hogy referenciával megy az objektum másolás, de én foxi módra eltökéltem hogy átmásolódik az egyik lista tartalma a másikba.) -
Ablakos
addikt
Egy kis segítséget szeretnék kérni. A mellékelt txt részlet (recept) szerkezetet szeretném listába olvasni. (A receptek üres sor szeparáltak. Recipe osztály 1db arraylist példány változót tartalmaz.)
Pancake dough
60
milk
egg
flour
sugar
salt
butterMeatballs
20
ground meat
egg
breadcrumbsTofu rolls
30
tofu
rice
water
carrot
cucumber
avocado
wasabiA tervem: string listába (part) tettem a sorokat és file üres sor esetén ezt a listát odaadtam a recepies listának, ami az osztályt tárolja. A gondom, hogy a part.clear(); hívással az átadott referencia is megszűnik. Hogy lehetne ez jól megoldani?
public static ArrayList<Recipe> readRecordsFromFile(String fileName) {ArrayList<Recipe> listRecipes = new ArrayList<>();ArrayList<String> part = new ArrayList<>();try {Scanner file = new Scanner(Paths.get(fileName));while (file.hasNextLine()) {String[] str = file.nextLine().split(System.lineSeparator());if (str[0].equals("")) {listRecipes.add(new Recipe(part));part.clear();} else {part.add(str[0]);}}if (!part.isEmpty()) {listRecipes.add(new Recipe(part));}} catch (IOException ex) {Logger.getLogger(RecipeSearch.class.getName()).log(Level.SEVERE, null, ex);}return listRecipes;} -
Ablakos
addikt
Mennyire használják a gyakorlati fejlesztésben a metódus tesztelés (assert) technikát? Érdemes komolyabban elmélyülni vagy elég az "ezt is láttám már" tudás?
-
Ablakos
addikt
A
containsteljeskörűen működik. Ha belenézel azObjectosztályba (ami minden osztály őse), láthatod, hogy azequalsmetódus referenciák egyenlőségét vizsgálja - lévén más információja nincs az osztályról. Azt csinálja, mint amit az == operátor.Tehát az
equalsés egyben acontainsalapértelmezett működése az, hogy csak akkor tekint két objektumot egyenlőnek / a lista egy tagjának, ha az az objektum ugyanaz az objektum, mondjuk úgy, hogy ugyanazon a memóriacímen található adathalmaz.Abban a pillanatban, hogy kiadod a
newutasítást, a jvm egy vadonatúj objektumot fog gyártani neked. Még ha ugyanazt a szöveget adod is meg neki a könyv címe paraméterben, még ha ugyanaz az évszám, még ha látszólag ugyanúgy is néz ki az az objektum, mint egy másik, a referenciájuk eltér, hiszen anewutasítással ezt kérted a jvm-től, egy új objektumot.A referencia alapú összehasonlítás időnként hasznos dolog, de a modelljeinkben többnyire nem ez a legjobb megoldás. Ezért készítünk az objektumainknak saját
equalst, amikor azokat egymással össze akarjuk hasonlítani, és azt várjuk el tőle, hogy egyenlőnek tekintsen két könyv objektumot, ahol a cím és az évszám egyenlő. Ezt sajnos meg kell írnod, mert a jáva túl buta, hogy kitalálja a programozó gondolatait, elvárásait.
(És készítünk nekik saját hashcode implementációt is, amikor azokat mondjuk HashSet-ben kívánjuk gyűjtögetni, vagy HashMap kulcsaként akarjuk felhasználni.)Tehát a
Book b1 = new Book("a", 1);és aBook b2 = new Book("a", 1);eltérő referenciával bír, az alapértelmezettequalsszerint ők különböző objektumok. Míg aBook b3 = b1;ugyanazzal a referenciával bír, mint a b1 objektumod, az alapértelmezettequalsszerint ők ugyanazok az objektumok.Értem és köszönöm a magyarázatot.
-
Ablakos
addikt
Akkor nem értem a problémát, nálam teljesen jól működik:
Name (empty will stop):
mybook
Publication year:
1
Thank you! Books added: 1
Name (empty will stop):
mybook
Publication year:
1
The book is already on the list. Let's not add the same book again.
Name (empty will stop):
Thank you! Books added: 1
Name (empty will stop):
yourbook
Publication year:
2
Thank you! Books added: 2
Name (empty will stop):
mybook 1
yourbook 2(Thank you! Books added: egy picit félrevezető kiírás, mert akkor is jön, ha nem adtunk hozzá semmit)
Most már, működik. Miután elárultad, hogy az equal-t is meg kell valósítani. (override)
Előtte nem tudtam, hogy a contains (teljeskörű) működéséhez azt is meg kell írni.Köszönöm.
-
Ablakos
addikt
A contains megmondja, hogy érték alapján van-e egyező elem az adott kollekcióban azzal az objektummal, amit paraméterként kapott. Azt, hogy érték szerint megegyezik-e valami, az equals metódus jelenti a Javaban. Ha van szerinted jó equals és nem így működik, akkor mutasd meg az equals-odat.
Mindössze két tag változó van a Book osztályban:
private String name;private int publicationYear;
-----------------------------------------------------------//------------@Overridepublic boolean equals(Object obj) {if (this == obj) {return true;} else if (!(obj instanceof Book)) {return false;}return (((Book) obj).name.equals(this.name) && ((Book) obj).publicationYear == this.publicationYear);} -
Ablakos
addikt
Az Arraylist contains hasznalja az equalst. Ha nincs korrektul implementalt equals a Book classban, akkor csak abban az esetben fog igazat adni, ha ugyanazt a referenciat tartalmazza az egyik, meg a masik book. Erdemes viszont akkor mar hashCode-ot is implementalni, mert mas kollekciok hasznalhatjak azt is a contains eldontesehez.
Azt hittem olyan csoda metódus a contains.
Akkor mi értelme a contains-nek?
Az eddigi (oktatási) feladatokban is override-oltam az equals-t és az jól is üzemelt. (referenciát és minden változót végigvizsgálva az objektumban) -
Ablakos
addikt
Egy kis szakértést szeretnék kérni, mert nem tudom megfejteni miért nem akar a contains metodus nekem működni.
(book class a simple pojo)public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ArrayList<Book> books = new ArrayList<>();while (true) {System.out.println("Name (empty will stop):");String name = scanner.nextLine();if (name.isEmpty()) {break;}System.out.println("Publication year:");int publicationYear = Integer.valueOf(scanner.nextLine());Book book = new Book(name, publicationYear);if (books.contains(book)) {System.out.println("The book is already on the list. Let's not add the same book again. \n Name (empty will stop):");} else {books.add(book);}System.out.println("Thank you! Books added: " + books.size());}for(Book b:books) {System.out.println(b.getName() + " " + b.getPublicationYear());}} -
Ablakos
addikt
-
Ablakos
addikt
A paraméteres try mindig volt, vagy csak nekem újdonság?
-
Ablakos
addikt
Én is bejelentkeztem erre a kurzusra. Kíváncsi vagyok milyen ez a (ha jól látom finn) e-learning.
-
Ablakos
addikt
-
Ablakos
addikt
Egy félrenyelésnél is nemzetiségi útra megy az étel és az óvodában, iskolában is kisebbségi kereket kell vetni. Jobb ha megbarátkozunk ezzel.
-
Ablakos
addikt
Engedjük el a string == -t :)
Megjegyeztem.
Persze jobb lenne, ha jeleznéd az OCP szerzői felé is, hogy kapják össze magukat. A prohardveren nem szeressük az ilyent.
-
Ablakos
addikt
Ez egész jó ki feladat.
Szóval a programban nem szerepel a 4. sorig "alma", ezért a közös String poolban sem.
Mivel az 1. és 2. parancs a new kulcsszavat használja, ezért mindkét String a heapbe kerül.
Az intern, amíg a pool-ban nem szerepel az érték, átrakja oda. Ergo az s1 átkerül, az s11 nem, az s2 pedig az intern után van, ez csak rámutat az s1-re.
Ha felcseréled a 3. és 4. parancsot, az s2 már az s1.intern előtt megcsinálja az almát a pool-ban, így az intern nem fogja az s1-et átmozgatni, ergo 3 különböző memóriacímet foglalsz (1-et a pool-ban kettőt pedig a new-k miatt a HEAP-ben).Ki tudod próbálni ha az s11 és s2 közé is raksz "=="-t
Köszönöm szépen a magyarázatot! Az OCP-ben hasonlókkal szórakoztatnak.
Lesz vele küzdelem. -
Ablakos
addikt
public static void main(String[] args) {
String s1=new String(args[0]);
String s11=new String(args[0]);
System.out.println(s1.intern() == s11.intern());
String s2="alma";
System.out.println(s1==s2);
}(a main "alma" paraméter kap.)
1. Tudna valaki magyarázatot, miért lesz a konzol kimenete a true/true a fenti esetben?
Úgy tudom a String immutable. Az s1 a heap-en jön létre az s2 literál az SCP-n ül.
Az intern() miatt átkerül az SCP-re?
2. Amit végképp nem értek, ha a 3.és 4.utasításokat felcserélem akkor true/false a kimenet.
-
Ablakos
addikt
Aki eligazodik az OCP-k között....
Az epub(pdf) változat ingyenes vagy hogy is van ez? A 11-est ugyan letöltöttem a github-ról, de a neten dollárokért árulják. -
Ablakos
addikt
Hogyan hívják a meghívott osztály változó nevét megmutató kiegészítést? Sehogyan sem jut eszembe. (name: age:)
public Person giveMePerson() {
return(new Person(name: "Anti",age: 40));
} -
Ablakos
addikt
-
Ablakos
addikt
Nem értem a maven típusú projeknél a következőt.
Javafx alkalmazást készítek (netbeans 11, openjdk12). A projektnél nem tudom az OpenJavaFXsdk/lib mappámat betenni dependencinek, hanem csak a listából felkínáltakat. Querizek és a felhozott org.openjavafxkerül be. (Ezzel is teljesen jól is működik az alkalmazás.)
A kérdésem, hogy ennek így kell működnie? Nem is kell külön jfxsdk-t letölteni, hozzáadni? -
Ablakos
addikt
A 10.15.1.3 verzióval nem megy. Amit a stackow. használnak 10.12.1.1 azzal jó.

A többi verziót nem néztem végig. Mindenre gondoltam, de erre álmomban sem.Ajjaj. THX
-
Ablakos
addikt
Nem fogalmaztam egyértelműen, mert nekem elégséges a beágyazott derby is. Közben kiszenvedtem, hogy a maven projectben már függőségként kell a megfelelő .jar -t hozzáadni. (régebbi videókban lib)
A connection teszt továbbra is kivétel ad.
Connection conn = DriverManager.getConnection("jdbc:derby:c:\\Users\\User1\\JavaDerbyDB\\test;create=true");Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/derby/shared/common/security/SystemPermissionMi a baja ennek a hívásnak?
-
Ablakos
addikt
Egy kezdőnek elég keserves a mostani java kavarodás.
Egy egyszerű derby adatbázist szeretnék létrehozni, megszólítani, de még a hozzávaló libet sem találom a 12-es verzióban. (a 8-as javaban db\lib\derby.jar)
Hogy tudom előkotorni? -
Ablakos
addikt
Egy metódus rekurzívan hívogatja saját magát. Hol tudom az exception (StackOverflow) elkapni?
Ez nem jó.
public void eat() {
try {
eat();
} catch (Exception e) {
System.out.println("SOF");
}
} -
Ablakos
addikt
Mi történik a háttérben, amikor egy byte értékkészleténél nagyob intet belekasztolok egy byte-ba?
(pl.byte l = (byte) 1525; result -11) -
Ablakos
addikt
Tudna valaki segíteni, hogy kell Netbeans alatt a 9-es JAVA platformot beállítani. "Rámutatok" a JDK folderre, de így a projects -> properties -> libraries-ben hiába választom ki a beállított 9-es platformot nem találja a java.lang csomagot. Kicsit fura, hogy separáltam van a JDK és a JRE.
-
Ablakos
addikt
-
Ablakos
addikt
Célszerű akkor nem kiprintelni, hanem a megfelelő helyre irányítani az eseményt.
public class AmicusFXMLDocumentController {
@FXML
private Button buttonMemoryLocation1;
public void initialize() {
//handle
buttonMemoryLocation1.addEventHandler(MouseEvent.MOUSE_PRESSED, this::buttonsMemoryLocation);
}
@FXML
private void buttonsMemoryLocation(ActionEvent event) {
if ((Button) event.getSource() == buttonMemoryLocation1) {
// itt szeretném elkapni, hogy az addEventHandler elsült
}
}
}Közben arra jutottam, hogy ha az fxml-ben az objektumnak minden eseményéhez ugyanazt a metódust rendelem, akkor ebben a metódus paraméterben egyszerre kapon meg az összes Event-tet.
Az érdekelne, amit az előző példámban bénáztam, azt hogy is kell a megfelelő helyre irányítani?
-
Ablakos
addikt
A lenti kód comment részben szeretném a Button objektumon elkapott mouse esemény is használni.
Ebben szeretnék egy kis segítséget kapni.public class AmicusFXMLDocumentController {
@FXML
private Button buttonMemoryLocation1;
public void initialize() {
//handle
buttonMemoryLocation1.addEventHandler(MouseEvent.MOUSE_PRESSED, mouseEvent -> {
System.out.println("Event " + mouseEvent);
});
}
@FXML
private void buttonsMemoryLocation(ActionEvent event) {
if ((Button) event.getSource() == buttonMemoryLocation1) {
// itt szeretném elkapni, hogy az addEventHandler elsült
}
}
} -
Ablakos
addikt
A tanfolyamok (Oracle) horror áron vannak. Torrent segítséggel pdf-ben letölthető a több tizezerforintos könyv (OCA/OCP) e- változata. Azt keményen végig kell tanulni (önállóan). Én most pont azt gyötröm.
Érdemes lemérni a tudásod a fejezet végén található kérdésekkel. Ha nagyon pengén megy minden,akkor kell nekiugrani az Androidnak. Addig csak kínlódás. (Én így jártam.
) -
Ablakos
addikt
Sziasztok,
Lehet h rossz forumba írok, de remélem nem
Szeretnék java programozást elkezdeni tanulni. Tudnátok esetleg valami jó könyvet ajánlani hozzá? Későbbiekben tanfolyamra is beiratkoznek de először szeretnék egy kicsit magamtól tanulni h egyáltalán tetszik e. Korábban kozepsuliban szamtech szakon végeztem és programozást is tanultunk. Ha jól emlékszem C++ volt
De már nem emlékszem sok mindenre
OCA/OCP Oracle Java 8. Nagyon könnyű az angol nyelvezete, gyenge angol tudáshoz is. Remekül megvilágít minden részletet.
-
Ablakos
addikt
Próbálok linux Mint alá betelepíteni egy javafx fejlesztőkörnyezetet. (Netbeans 8.1 repobol +oracle jdk 8.) Ha checkout-olok egy létező javafx projectet az rendben működik. Új javafx projectet viszont nem tudok létrehozni. Hiányzik a Netbeans alatt az new project -> javafx wizard. Mit kell még beállítani, hogy legyen ilyen menüpont?
Hopp, kapkodtam. Itt a pluginok nincsenek bekapcsolva alapból, mint windows alatt. Megoldva.

-
Ablakos
addikt
Próbálok linux Mint alá betelepíteni egy javafx fejlesztőkörnyezetet. (Netbeans 8.1 repobol +oracle jdk 8.) Ha checkout-olok egy létező javafx projectet az rendben működik. Új javafx projectet viszont nem tudok létrehozni. Hiányzik a Netbeans alatt az new project -> javafx wizard. Mit kell még beállítani, hogy legyen ilyen menüpont?
-
Ablakos
addikt
Tud valaki elérhetőséget a swingset3.jnlp letöltésre? Nem értem miért vacakol az oracle lapján.
-
Ablakos
addikt
public class Main {
int i[] = {0};
static public void main(String[] args) {
int i[] = {1};
change_i(i);
System.out.println(i[0]);
}
public static void change_i(int i[]) {
int j[] = {2};
i = j;
}
}Nem értem miért 1 és nem 2 az eredmény.

-
Ablakos
addikt
Swinggel barátkozom. Legenerálta a kívánt gui objektumokat, és hozzáadtam az eseménykezelőket is. A kezelőket letettem a metódus végére, mert egymásra hivatkoznak. Igazából a működéssel nincs baj, de a source/design váltás elment. Nem bírom sehogyan rávenni az eclipset, hogy parsolja vissza a design nézetet.
Lehet, hogy nem szabad hozzápiszkálni a generált kódhoz, vagy nem tudom mi van ezzel? -
Ablakos
addikt
-
Ablakos
addikt
Kihagytam a connect() hívást és a connection kiemeltem osztály szintre, de a típus def. bent maradt a metódusban

Köszönöm az iránymutatást. -
Ablakos
addikt
Nem értem miért rossz a következő mysql lekérdezésem. NullPointer Exception a jutalmam.
package main;
import java.sql.ResultSet;
import java.sql.SQLException;
import query.Query;
public class Main {
public static void main(String[] args) throws SQLException {
Query query = new Query();
ResultSet res = query.getAllCountries();
while (res.next()) {
int cid = res.getInt("country_id");
String name = res.getString("name");
System.out.println(cid + "\t" + name);
}
}
}
package query;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import dbcfg.DbCfg;
public class Query {
private Connection connection;
public void connect() throws ClassNotFoundException, SQLException {
Class.forName(DbCfg.DRIVER);
Connection connection = DriverManager.getConnection(DbCfg.URL
+ DbCfg.DB_NAME, DbCfg.USER, DbCfg.PASSWORD);
}
public ResultSet getAllCountries() throws SQLException {
Statement s = connection.createStatement();
return s.executeQuery("Select country_id from countries");
}
}
package dbcfg;
public class DbCfg {
public static final String URL = "jdbc:mysql://192.168.1.80:3306/";
public static final String DB_NAME = "country";
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String USER = "java";
public static final String PASSWORD = "java";
}
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- World of Tanks - MMO
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen ÚJ notebookot vegyek?
- Milyen TV-t vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Revolut
- Autós topik
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Diablo IV
- Diablo II: Classic és Resurrected
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- BESZÁMÍTÁS! 2TB Samsung 980 Pro NVMe SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! AMD Ryzen 9 5950X 16 mag 32 szál processzor garanciával hibátlan működéssel
- Prémium PC házak akár 20-40% kedvezménnyel nagy választékban garanciával/számlával! Upd. 05.18
- Lenovo ThinkPad E14 Gen 5 13.gen FHD+ FÓLIÁS TÖRÉSGARANCIÁVAL!
- Dell Latitude 5430 14" Touchscreen i5-1235U 32GB 1000GB 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

(Szénné olvastam a netet, de ezt a separátort nem vettem sehol észre.) Mindenhol a függőségkezelést erőltetik, de szeretném kézzel-lábbal összekínlódni az alkotást.
/srv/java/CSV/opencsv-5.12.0.jar
A workspace utf8 kódolásra van állítva. A fájlrendszerre nem tudja kiírni az IDE a nevet. Mit lehet ezzel tenni?


)

Tudom, hogy referenciával megy az objektum másolás, de én foxi módra eltökéltem hogy átmásolódik az egyik lista tartalma a másikba.)
Lesz vele küzdelem. 



