- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Szívós, szép és kitartó az új OnePlus óra
- Feltalálta a Google a keresőmotort
- Yettel topik
- Samsung Galaxy A26 - csak a szokásos
- Google Pixel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- OnePlus Watch 4 néven újráz az Oppo Watch X3
- Hivatalos a OnePlus Watch 4
- Samsung Galaxy A56 - megbízható középszerűség
- Fotók, videók mobillal
-
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
-
Sokimm
senior tag
String product_ID = "0x0105";
short ProductID_short = Short.parseShort(product_ID_String, 16);
így se jó. (és még azt se tudom, miként tudnám jobban szétbonatani a debug-hoz)...és azért akarom megcsinálni, mert mindent meg lehet csinálni programozással.

Ez egy kihívás, amúgy meg egy rakat adatot akarok return-olni egy függvényből, amit (short to string)-re konvertálom, majd string-ként kiküldöm (összefűtés után). (mivel a legkomplexxebb adattípus a string az adathalmazomban)Amúgy valami objektumként is return-olhatnék, de ha már mint problémába ütközött tanuló, érdekelne, hogy miként lehet a string-emből ismét short. (mert az volt még 3 másodperccel ezelőtt)
Sajnos már nem volt idő szerkeszteni az előző hsz-t...
Arra rájöttem, hogy a 0x kezdés nélkül képes konvertálni, de egy másik hex alapú (068E) számot már nem.
Aztán néztem, és az eszközk ID-jai elé a függvény generátora betolhat töltő nullákat (ezért az első nulla sem kell, elég 3 karakter, csak 4 digitet akar megjeleníteni (nem tudom mért)).Ha simán a 68E-t konvertálom, akkor megint jó.
Már csak azt nem értem, hogy hogy fér el egy 16 bit-es short-ban (min -32,768 max 32,767 (inclusive)) a 390-es érték.System.out.println(info.getProductId());
Mert erre a console a 390-et adja. (ez már más érték, mint az előbb hozott string/short dolog)A println függvény játszik valamit a kiírási értékkel?
.45! Igen az elgépelés, a valódi kódban jól vannak elnevezve!

-
Sokimm
senior tag
String product_ID = "0x0105";
short ProductID_short = Short.parseShort(product_ID_String, 16);
így se jó. (és még azt se tudom, miként tudnám jobban szétbonatani a debug-hoz)...és azért akarom megcsinálni, mert mindent meg lehet csinálni programozással.

Ez egy kihívás, amúgy meg egy rakat adatot akarok return-olni egy függvényből, amit (short to string)-re konvertálom, majd string-ként kiküldöm (összefűtés után). (mivel a legkomplexxebb adattípus a string az adathalmazomban)Amúgy valami objektumként is return-olhatnék, de ha már mint problémába ütközött tanuló, érdekelne, hogy miként lehet a string-emből ismét short. (mert az volt még 3 másodperccel ezelőtt)
-
Sokimm
senior tag
Oh! Értem! Köszi!
Csak azt nem értem, hogy akkor minek van ez a függvény:
Short.parseShort(akármit);Miként oldanátok meg akkor a problémám?

Egyesével levágdosom a stringről a karaktereket, majd konvertálom valahogy, értéket vizsgálva? (ha nem nagyobb, mint, stb...) -
Sokimm
senior tag
Hogyan lehet vizsgálni, ha egy Objektum példánya létrejött (van, létezik)?
if (myObject != null) {
System.out.println("myObject objektumom létezik, hivogathatom a metódusait");
} else {
System.out.println("myObject objektumom nem létezik, ha ráhívok egy metódusára, NullPointerException a jutalmam");
}vagy
if (myObject instanceof String) {
System.out.println("myObject objektumom létezik, sőt azt is tudom róla, hogy String típusú, így bátran Stringgé castolhatom");
}Ha eleve String típusú a myObject változód, akkor felesleges instanceof-olni.
Pl.:String myObject = "kiskutya";
A bal oldalon jelölve vagyon, hogy ez legalább egy String, és mivel a java erősen típusos nyelv, compile error figyelmeztetne, ha valamit elcsesztél volna.Object myObject = "kiskutya";
Ebben az esetben nem lehetsz teljesen biztos benne, hogy ez egy String (annak ellenére, hogy erről a nyilvánvaló példáról ordít, hogy az), de ha szeretnéd String-ként kezelni, akkor castolnod kell mielőtt meghívod rajta a String osztély metódusait ((String)myObject).isEmpty(); Ha pedig ezt biztonságban szeretnéd elvégezni, akkor a castolás előtt érdemes csekkolni egy instanceof-fal, hogy valóban String van-e benne.
A null nem String, a null nem is Object, a null semmi. Az instanceof mindig false-szal fog visszatérni egy null referenciára, mert a semmiről nem lehet eldönteni annak típusát.És ha létrejött a példány, akkor még lehet null tartalmű, amire hogyan kérdeznétek rá? (azon túl, hogy kiteszed egy lokális változóba, ahogy az előbb írtad (ha nincs más, marad ez a módszer, csak elég bénácskának néz ki a kezdő szememnek))
Ha létrejött a példány, nem lehet null.Kiteheted lokális változóba, ha úgy kényelmes:
String product = info.getProductString();
if (product != null && product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De nem kötelező, használhatod a gettert is újra meg újra:
if (info.getProductString() != null && info.getProductString().equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De akár meg is mókolhatod a lekérdezéskor, hogy kiküszöböld az API hülyeségeit:
String product = info.getProductString() == null ? "" : info.getProductString(); // ez egy ternáris operátor, egyfajta kompakt if: ha a getter null, akkor üres stringet használ helyette, különben meg a getter által visszaadott nemnull értéket
if (product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}A java könyvek, vagy pl. az oracle tutorial relatíve korán elmagyarázza a java objektumok, referenciák, nullitás témakörét, érdemes rászánni azt a kis időt.
Köszönöm, köszönöm, így már megy (nem sok időm van programozni, de már megy ez a része, hála nektek!)
Köszönet mindenkinek!
Új problémába futottam, remélem erre is lenne pár szavatok:
Nem tudok string-ből short-ot csinálni.public static void main(String[] args) throws IOException {
String product_ID = "0x068E";
Controller StringToShort= new Controller();
StringToShort.ASD(product_ID);
}public static void ASD(String product_ID_String) throws IOException {
short ProductID_short = 0;
try {
ProductID_short = Short.parseShort(product_ID_String);
} catch (NumberFormatException e) {
System.err.println("The string is not properly formatted!");
}
}Mért nem tudom short-á varázsolni a string tartalmat?
-
Sokimm
senior tag
Nem kérdezek vissza, hogy mi minden ellentmondó, de így nem tudok érvelni, se indokolni, hogy mi hogy...
A 2 kérdésemet akkor egyszerűsítve tenném fel:
Hogyan lehet vizsgálni, ha egy Objektum példánya létrejött (van, létezik)?
És ha létrejött a példány, akkor még lehet null tartalmű, amire hogyan kérdeznétek rá? (azon túl, hogy kiteszed egy lokális változóba, ahogy az előbb írtad (ha nincs más, marad ez a módszer, csak elég bénácskának néz ki a kezdő szememnek))Az összes választ itt szeretném előre (és hátra) megköszönni, nem szemetelném vele a fórmumot a későbbiekben!

(de úgy érzem a végére értünk a témának)
Köszönöm mindenkinek!
-
Sokimm
senior tag
De ahhoz, hogy átadjam a nevét, vizsgálni szeretném előbb.
A logikám először vizsgál, aztán adja át a nevet.
Egy lokális változóba kell tennem az értéket, majd csak azt tudom vizsgálni a .equals-al??
Mert ezzel sikerül a vágyam:if (info.getProductString() instanceof String) {
AskDeviceName = info.getProductString();
}
//todo... -
Sokimm
senior tag
(bocs, válaszra nyomtam, de nem csak neked írtam)
-Null-ra instanceof String false-t ad természetesen. Null az null típusú.
-Pointerezést hagyjuk már, nincs pointer javában, referencia van. Nem ugyanaz a kettő, úgyhogy nem csereszabatos a két fogalom.
-Az eredeti példában AskDeviceName null, és mivel isEmpty egy példány szintű metódusa a String oszálynak, ezért kapsz nullpointexceptiont, mert null referencián próbálod hívni a metódust. Objektum példányod viszont nincs.
-primitív típusoknak van default értékük, ha mezők. Lokális változokként inicializálatlanok by default, compile time error rájuk hivatkozni.Ez lesz az akkor!
"Objektum példányod viszont nincs"
Hogyan tudom ellenőrizni, hogy van-e példány már, vagy sincs?
(nem az instanceof String-el)
Van erre valami uri huncut megoldás? (hivatalos, bevált, szakmai, tuti)(#9832) bambano:
Kipróbáltam, de mindig true-t ír, a te verziódra is: (tehát van benne valami?)System.out.println(info.getProductString()!=null); -
Sokimm
senior tag
Van egy kis kavar. Egy String az instanceof-ra akkor is true, ha nincs inicializálva, azaz null értékű.
Ha igaz lenne amit mondasz, akkor az első if-em true-ként értelmezné a feltételt, és az AskDeviceName kezdő értékét (asd) beállítaná mondjuk null-ra, elvégre true a feltétel. (és kiiratná a 2_AskDeviceName.isEmpty()? sort...)
Ha String AskDeviceName-et vizsgálom, hogy.equals-e, akármire, akkor nincs hibaüzenet, de ha a .getProductString-re, akkor van....)
Ergo valami nem stimmel...import java.awt.BorderLayout;
import purejavahidapi.*;/*
http://nyholku.github.io/purejavahidapi/javadoc/index.html
https://github.com/nyholku/purejavahidapi */
import java.util.List;
public class HID_joy {
public static void main(String[] args) {
String AskDeviceName = "";
List<HidDeviceInfo> devList = PureJavaHidApi.enumerateDevices();
for (HidDeviceInfo info : devList) {
System.out.println("1_AskDeviceName.isEmpty()? " + AskDeviceName.isEmpty());
if (info.getProductString() instanceof String) {
AskDeviceName = info.getProductString();
System.out.println("2_AskDeviceName.isEmpty()? " + AskDeviceName.isEmpty() + " mert: " + AskDeviceName);
}
System.out.println("3_AskDeviceName.length()" + AskDeviceName.length());
if (info.getProductString() instanceof String && AskDeviceName.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("mach!!!");
VendorID = info.getProductId();
ProductID = info.getProductId();
} else {
System.out.println("Nem a keresett eszköz");
}
}így néz ki ez konzolon:
1_AskDeviceName.isEmpty()? true
3_AskDeviceName.length()0
Nem a keresett eszköz
1_AskDeviceName.isEmpty()? true
2_AskDeviceName.isEmpty()? false mert: USB Joystick
3_AskDeviceName.length()12
Nem a keresett eszköz
1_AskDeviceName.isEmpty()? false
3_AskDeviceName.length()12
Nem a keresett eszköz
1_AskDeviceName.isEmpty()? false
2_AskDeviceName.isEmpty()? false mert: CM STORM INFERNO GAMING MOUSE
3_AskDeviceName.length()29
mach!!!De ha nyersen ráengedem az info.get-re a .equals-t, akkor jön a hibaüzi...
System.out.println(info.getProductString().isEmpty());
//vagy erre is hibát dob:
System.out.println(info.getProductString().length());
Exception in thread "main" java.lang.NullPointerException -
Sokimm
senior tag
A logikád alapján (amit még nem értek, kérlek légy türelmes velem
), ha a get dob egy null-t, mert nincs inicializalva, amit majd vizsgálok az isEmpty-vel, de mért nem dob true-t, elvégre nagyonnagyon üres.A felépítés a következőképpen néz ki a fejemben (kérlek ezt is korrigáld, ha téves)
1, Címterület foglalás (deklarálás) típusmegjelöléssel, változó név adással // int x;
2, Mindaddig, míg nem kap kezdő értéket, "null" van benne, tehát üres. Itt a fejemben az isEmpty true. (de a valóságban nem true
)
3, Értékadás (inicializálás) // x=1; -
Sokimm
senior tag
-
Sokimm
senior tag
Köszi, kipróbálom, ha odajutok!

Amúgy lehet, hogy a mutató célja (memória címterület, amiből az info.get.... et kérdeznénk) nem is létezik (nem adtak a gyártók az eszköznek nevet, és emiatt címet se foglaltak le a "névnek"). Tehát hibát dob, mert olyanra mutatok, ami nem is létezik (nem hogy csak null lenne).A string vizsgálat meg lehet logikailag nem egymás melett létező dolgokat (ez==ezzel?) vizsgál, hanem csak bele néz a mutatott területre (ha tud), és kiköp egy választ. Mivel nem tud belenézni, nem is hibának érzékeli, hanem "nem string" üzenettel tér vissza. Ha van lefoglalva terület, és bele tud nézni, és még netalán String is, akkor kiköpi válasznak, hogy true.
Ez a gondolatmenet hülyeség?
-
Sokimm
senior tag
Már próbáltam (csak elfelejtettem említeni), hogy nem működik.

String AskDeviceName = info.getProductString();
System.out.println(AskDeviceName.isEmpty());//ez a 35. sor
/* Ezt a hibát dobja erre:
Exception in thread "main" java.lang.NullPointerException at hid_joy.HID_joy.main(HID_joy.java:35)
C:\Users\sokimm\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
*/Aztán végül így meg megy:
if (info.getProductString() instanceof String) {
AskDeviceName = info.getProductString();
System.out.println(AskDeviceName.isEmpty());
}Mért képes a String"ségét" vizsgálni, de az ürességét nem? Van olyan eszköz, aminek nincs neve (a gyártó nem adott neki, ezért gondolom null értéke van, vagy lehet nincs is ilyen memóriacímterülete?), de van, aminek van neve (amiket használnék, azoknak van).
-
Sokimm
senior tag
Sziasztok!
Szeretnék egy kis segítséget kérni egy dologban. Netes HID eszköz include-jából szeretnék adatot nyerni.
https://github.com/nyholku/purejavahidapiVan egy ilyen kódom:
import purejavahidapi.*;
List<HidDeviceInfo> devList = PureJavaHidApi.enumerateDevices();
for (HidDeviceInfo info : devList);
System.out.printf("VID = 0x%04X PID = 0x%04X Manufacturer = %s Product = %s\n",
info.getVendorId(),
info.getProductId(),
info.getManufacturerString(),
info.getProductString(),Erre ezt az output-ot kapom:
VID = 0x046A PID = 0x0023 Manufacturer = null Product = null
VID = 0x12CF PID = 0x0186 Manufacturer = COOLER MASTER Product = CM STORM INFERNO GAMING MOUSEAzt szeretném elérni, hogy megkeressen egy eszközt (példának okáért a CM STORM INFERNO GAMING MOUSE nevűt, majd a VID és PID értékeket adjuk tovább egy változónak (hogy tudjam majd feldolgozni a bejövő adatokat)).
Ezzel próbálom szűrni a cikluson belüli végigfutást (mikor mit csináljon), de sikertelenül.
if (info.getProductString() instanceof String /*mert néha null értékű, és hibát dob*/ && AskDeviceName=="CM STORM INFERNO GAMING MOUSE") {
System.out.println("mach");
VendorID = info.getProductId();
ProductID = info.getProductId();
} else {
System.out.println("nem jó az if");
}Azt már tudom, hogy tuti String az adat, és a mérete is konstans, de mégsem talál egyezést a beírt adatommal.
Mit rontok el?
Szándékosan nem az ID-kkal azonosítom, mert a user interface grafikus felületen a neve alapján választjuk majd ki, hogy melyik eszközt akarom használni, amit majd a gép az ID-k alapján azonosít. -
Sokimm
senior tag
Mit adtál meg a-nak és c-nek? Meg nem ártana a for ciklus magját kapcsos zárójelek közé tenni, mert nem egyértelmű két sorból, hogy a sysout a magban van vagy a ciklus után. Legalábbis nekem nem
(látszólag a magban)Most már jó...
Elnézést a buta kérdésem miatt, amire megtaláltam a választ. Ez az internetes lexikonok "TÉMA OFF" címszavára a tökéletes példa. A "semmi értelme az írásomnak" című fejezetet olvastátok. 
-
Sokimm
senior tag
A "b" mit takar?
Bocsánat, az i akart lenni. Tehát az i-re vagyok kíváncsi, mért nem írja ki. :\
-
Sokimm
senior tag
Nem értem, mert nem tudok eleget.
Okítsatok ki pls.
.....
for (int i=c; i<=a; i++)
System.out.println (i);a, és c értéket én adok meg console-ról.
Mért nem írja ki a b-t a végén?
Beadom a két értéket, és vége. BUILD SUCCESSFULHogyan tudnék olyat csinálni, hogy én adom meg neki console-ról, hogy honnan, és meddig (esetleg milyen lépésszámmal) lépjen a ciklus?
(vagy egy random függvényt integrálnék bele, hogy ez a későbbiekben létrehozzon nekem egy megfelelő mennyiségű adathalmazt, amivel majd dolgozhatok (gyakorolhatok).) -
Sokimm
senior tag
Szuper! Köszönöm mindenkinek a hozzászólást!
(for ciklusos problémával kapcsolatban) -
Sokimm
senior tag
-
Sokimm
senior tag
Sziasztok!
Most kezdtem a java-t tanulgatni, és nem értem a logikai sorrendet a két for ciklussal kapcsolatban, ami alapján kijön ez az eredmény:for (byte i=1; i<=10; i++)
System.out.print (++i +" ");
for (byte n=1; n<=10; n++)
System.out.print (n++ +" ");i értékre 2 4 6 8 10-et kapok
n értékre 1 3 5 7 9 -et. Mi különbség a ++i és i++ közt? Netet túrva (nem elég huzamos ideig, lehet az a baj) nem találtam rá választ. :\A segítségeteket előre is köszönöm!

Ú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?:))
- BMW topik
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- sziku69: Fűzzük össze a szavakat :)
- MasterDeeJay: Low budget (50.000 forint) light gémer gép összerakása
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mibe tegyem a megtakarításaimat?
- Szívós, szép és kitartó az új OnePlus óra
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- További aktív témák...
- 27% - Sapphire PULSE Radeon RX 7800 XT 16GB GDDR6 Videokártya!
- Dell Latitude 3380 - Core i3 6006U, 4-8GB DDR4 RAM, gyári töltő, számla, 6 hó gar
- 27% - ÚJ Kingston FURY Beast 64GB (2x32GB) DDR5 5600MHz KF556C36BBEK2-64
- Apple iPhone 15 Pro 128GB eladó! 86% akku, Patika állapot, 12 hónap garancia
- Apple iPhone 16 Pro Max 256GB eladó! 94% Akku, Szép állapot, 12 hó gar
- Corsair K70 RGB TKL Gaming Billentyűzet + PBT Double-Shot Pro Keycap
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- ÚJ! Lenovo Yoga PRO 9 Ultra 9 285H 32GB RAM 2x1TB SSD RTX 5060 8GB 16" QHD+++ OLED 3év Prémium GAR
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- BESZÁMÍTÁS! ASUS H610M i5 12400F 16GB DDR4 1TB SSD RTX 3050 6GB Endorfy Signum 300 TG MSI 650W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



)
Elnézést a buta kérdésem miatt, amire megtaláltam a választ. Ez az internetes lexikonok "TÉMA OFF" címszavára a tökéletes példa. A "semmi értelme az írásomnak" című fejezetet olvastátok. 
Okítsatok ki pls.


