Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Java programozás (kiemelt téma)

Hozzászólások

(#9901) Lortech válasza mobal (#9900) üzenetére


Lortech
addikt

Szerintem azért nem jött még válasz, mert nem túl definitív a kérdés. Milyen RPC-ről van szó és pontosan hogyan értendő, hogy "bekerült" a REST API-ba?

Thank you to god for making me an atheist

(#9902) mobal válasza Lortech (#9901) üzenetére


mobal
MODERÁTOR

Ezt úgy értem, hogy a szoksásos CRUD mellet van még pár darab sima hívás ami pl. egy előre, fixen beállított értékkel megcsinálja az updatet, vagy fix értékekkel beilleszt egy újat.

Pl.:

/api/v1/valami GET

/api/v1/valami POST, store

/api/valami/{id} GET, show

/api/valami/{id} PUT, update

/api/valami/függvényAmiUpdateliADátumot/{1} POST (jelen esetbe adat postázása nem történik)

[ Szerkesztve ]

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#9903) Lortech válasza mobal (#9902) üzenetére


Lortech
addikt

Kérdés, mi az oka.
Ha valami spéci consumerhez kellett igazítani és megkötés volt, hogy így nézzen ki az api, akkor nincs mit tenni, vsz nem ez a helyzet. Egyéb esetekben irtanám az ilyet tűzzal-vassal.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#9904) mobal válasza Lortech (#9903) üzenetére


mobal
MODERÁTOR

Semmi olyan nem történt amit ne lehetne egy update-tel megoldani. Köszi! :))

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#9905) user112


user112
senior tag

Sziasztok!
Kezdő kérdésem lenne, mert elakadtam.
Van egy Allat ősosztályom valamint két gyerek osztály (Dog és Cat,mindkettőben extends Animal).
A gyerek osztályok csak egy illetve két új változót tartalmaznak, az összes többi az Allat-ban van.
Közös ArrayList-be szeretném tenni a gyerek osztály példányait vegyesen a setterek segítségével
A Dog-ra így működik:

ArrayList<Dog>pelda1 = new ArrayList<Dog>();
Dog peldany = new Dog();
peldany.setFaj("Vizsla");
...
pelda1.add(peldany);

Hogyan tudom a Cat példányait is beletenni a pelda1-be, vagyis egy közös ArrayList-be?
Köszönöm.

(#9906) Mirman válasza user112 (#9905) üzenetére


Mirman
őstag

Animal típusú listát hozz létre és abba pakold a példányokat.

(#9907) user112 válasza user112 (#9905) üzenetére


user112
senior tag

Sima tömbre találtam ilyet:
Allat[] pelda1 = new Allat[3];
pelda1[0] = new Allat(... változók...) ;
pelda1[1] = new Dog(...) ;

Nekem csak a gyerek példányok kellenének, szülő nem.
Ellenőrizni is kell az egyes változók tartalmát (setter).
Még a kiolvasás is fontos lenne (println), ciklussal.

(#9908) user112 válasza Mirman (#9906) üzenetére


user112
senior tag

És milyen "módosíto" kell a Dog, Cat példányok elé?

(#9909) usergefi válasza user112 (#9907) üzenetére


usergefi
kezdő

Csak közös ős típusú listába tudod bepakolni minkét gyereket:
Arraylist<Animal> pelda1 = new ArrayList<Animal>;
Dog dog = new Dog();
//dog setterek
Cat cat = new Cat();
//cat setterek
pelda1.add(dog);
pelda1.add(cat);

Aztán kiolvasásnál:
foreach (Animal a : pelda1) {
if (a instanceof Dog) {
Dog thedog = (Dog) a;
}
}
Ugyanígy a macskákkal...

https://www.youtube.com/channel/UCOUWT6usZkzhcyJKaA3e-QQ

(#9910) user112 válasza usergefi (#9909) üzenetére


user112
senior tag

:R Köszönöm, működik a beírás.

(#9911) loster99


loster99
újonc

Sziasztok!
Szeretném egy java-ban tapasztaltabb felhasználó segítségét kérni :)
Most tanulom a nyelvet és dupla vagy semmi alapon belevágtam egy (számomra) összetettebb feladatba. Nos, nem tudom, hogy mennyire tekinthető ez a kód szépnek, egyik első összetettebb próbálkozásom.

Azt szerettem volna megvalósítani, hogy a program kérje be egy osztály diákjainak a számát.
Létrehoz két akkora tömböt, amekkora az osztálylétszám.
Ezután bekéri sorban a diákok dolgozat pontszámait annyiszor, ahány diák van (do while ciklussal csináltam).
Ezeket a pontokat a diakok nevű tömbben elhelyezi sorban.
Ezután a pontokból megállapítja az érdemjegyet és az érdemjegyet elhelyezi a jegyek nevű tömbben, szintén sorban.
A végén pedig szeretném, ha kiírná egymás alatti sorokba a diák számát, mellé a pontját és az érdemjegyét.

A fordító 3 db hibát jelez:

osztalyzatok.java:27: error: illegal start of type
if (szamlalo = diakszam){
^
osztalyzatok.java:27: error: <identifier> expected
if (szamlalo = diakszam){
^
osztalyzatok.java:27: error: ';' expected
if (szamlalo = diakszam){
^
Valaki tudna segíteni, hogy ezt a 3 hibát hogyan tudnám megszüntetni?

Maga a programkód:

import java.util.Scanner;
class osztalyzatok{
public static void main(String[] arguments){
Scanner sc = new Scanner(System.in);
System.out.println("");
System.out.println("Diákok száma:");
int diakszam = sc.nextInt();
int diakok[] = nextInt[diakszam];
int jegyek[] = nextInt[diakszam];
int szamlalo = 1;
int szamlalo2 = 0;
int jegy;
do{
System.out.println("");
System.out.println("Az " + szamlalo + " diák pontszáma:");
int pont = sc.nextInt();
diakok[szamlalo2] = pont;
if (pont <= 100 & pont > 80){jegyek[szamlalo2] = 5;}
else if (pont <= 80 & pont > 70){jegyek[szamlalo2] = 4;}
else if (pont <= 70 & pont > 60){jegyek[szamlalo2] = 3;}
else if (pont <= 60 & pont > 50){jegyek[szamlalo2] = 2;}
else if (pont <= 50 & pont >= 0){jegyek[szamlalo2] = 1;}
szamlalo++;
szamlalo2++;
}
while (szamlalo <= diakszam);}
if (szamlalo = diakszam){
szamlalo2 = 0;
for (x = 1; x <= diakszam; x++)
System.out.println("");
System.out.println("Az első diák pontja: " + diakok[szamlalo2] + "Érdemjegye: " + jegyek[szamlalo2]);
szamlalo2++;
}
}

:R

[ Szerkesztve ]

(#9912) Sirpi válasza loster99 (#9911) üzenetére


Sirpi
senior tag

Egyenlőség vizsgálatára az == való

Ebben a sorban nem felesleges a } ?
while (szamlalo <= diakszam);}

És nézz utána, mi a különbség a & és a && között, utóbbi hatékonyabb (nem nézi tovább a feltételt, ha már biztosan tudja az eredményét)

Hazudnék, ha cáfolnám annak tagadását, hogy ez az ital nem nélkülözi a koffeinmentesség megnemlétének hiányát. Na most akkor van benne koffein, vagy nincs?!

(#9913) Aethelstone válasza Sirpi (#9912) üzenetére


Aethelstone
addikt

A && és & közötti különbség nem csak hatékonyság kérdése. Egyszerűen másra való. & akkor kell, ha mindenképpen végig akarod tolni a láncot, pl. több érték validálása. Logical vs. Conditional

[ Szerkesztve ]

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9914) Lortech válasza Aethelstone (#9913) üzenetére


Lortech
addikt

Jól mondod, de én még tovább mennék: nem nem csak, hanem egyáltalán nem hatékonyság kérdése. Ha ugyanarra volna való a két operátor, csak az egyik hatékonyabb lenne, akkor nem is létezne a kevésbé hatékony.
Abban a nagyon ritka esetben, mikor &,|,^ valamelyikét írod boolean operandusok esetén és nem elírtad, akkor 99,99..%, hogy a rövidzár/nem rövidzár különbséget akarod valamiért kihasználni.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#9915) Aethelstone válasza Lortech (#9914) üzenetére


Aethelstone
addikt

Hát jah. Ennek ellenére pl. a Sonar a &-et simán kifügyöli, hogy Te biztos &&-t akartál használi :) Egyébként én aránylag gyakran használom...ahogy írtam is, validálásra, amikor is azt akarom, hogy lefusson mindegyik, mert nem csak le kell futnia, hanem a lefutáskor mondjuk false esetén be is kell pirosozni vmit...nyilván ezt lehet &&-el is, de ez már ízlés dolga.

[ Szerkesztve ]

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9916) estro válasza Aethelstone (#9915) üzenetére


estro
csendes tag

Hát az elég átláthatatlan kód, nem? Egy feltétel vizsgálatnál szerintem legtöbben nem számítanánk állapot változásra. Ha jól emlékszem valamelyik könyvben volt is írva, hogy nem ajánlott használni.

(#9917) Aethelstone válasza estro (#9916) üzenetére


Aethelstone
addikt

Ezért írtam, hogy ízlés dolga :) A könyvekben található dolgokat meg nem véletlenül hívják ajánlásnak :)

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9918) Lortech válasza Aethelstone (#9917) üzenetére


Lortech
addikt

Ez oké, amikor egyedül toljuk a saját garázs projektben, viszont csapatban illik a standardek, konvenciók, ajánlások szerint fejleszteni, mert jó esetben ez az, ahogyan a többi csapattag is fejleszt, egy új csapattagot így lehet legkönnyebben beilleszteni. Volt szerencsem mar sokfele tragya munkahoz sajnos, ahol a tragya megoldasok valtak konvenciokka, es igen kellemetlen tud lenni, mikor mindenki hulye a csapatban, csak en vagyok helikopter. :) Nalam az & PR-nel azért menne a levesbe boolean operandusok eseten, mert a fejlesztok tobbsege szerintem csak a bitenkenti ES jelenteset, egeszeken ertelmezve ismeri es dobna egy exceptiont, ha ilyet lat, es ez netto kidobott ido, ha egy sima feltetelen gondolkodni kell.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#9919) Aethelstone válasza Lortech (#9918) üzenetére


Aethelstone
addikt

Agree, de ez a &
vagy && szerintem konkrétan szabadon választott. Amennyiben a fejlesztő pontosan tudja, hogy melyik mire való, hogy működik.

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9920) user112


user112
senior tag

Sziasztok!

Találtam egy mintapéldát az osztály és példánytagok inicializáló blokkjaival kapcsolatosan:

package hallgato;
public class Hallgato {
static int alapTandij;
double atlag;
int tandij;
// Osztályinicializáló blokk
static {alapTandij=2000;}
// Példányinicializáló blokk
{ atlag=7.5;
tandij=alapTandij+(int)Math.round(3000*(10-atlag));
}
public void prrint(){
System.out.println("Tandíj: "+tandij);
}
}

Próbáltam futtatni, úgy hogy a main-t betettem a Hallgató osztályba, de csak úgy éri el a függvényt és a változókat, ha azok mind statikusak.
Benéztem valamit? Mindennek static-nak kell lennie és az értékadások (példányinicializálás) csak a példányoknál mutatkoznak?

(#9921) usergefi válasza user112 (#9920) üzenetére


usergefi
kezdő

Mivel a main függvény static, ezért abból csak statikus változókat és függvényeket tudsz elérni. Ha nem akarod azzá tenni őket, akkor példányosítani kell a Hallgato osztályt és azon keresztül hívni a függvényt:
Hallgato h = new Hallgato();
h.prrint();

https://www.youtube.com/channel/UCOUWT6usZkzhcyJKaA3e-QQ

(#9922) Aethelstone válasza user112 (#9920) üzenetére


Aethelstone
addikt

Ha mondjuk egy értelmesebb IDE-t használsz, neadjisten PMD-t, akkor meg is mondja, amit az előző kolléga a hozzászólásában kifejtett :) Talán még a javac is sikít :)

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9923) user112 válasza usergefi (#9921) üzenetére


user112
senior tag

Rendben.
De mivel ez egy mintapélda (és semmi több nem volt hozzá), ezért úgy szerettem volna kipróbálni, hogy példányosítással ás anélkül is futtatom, hogy lássam a különbséget. Ebben a formában viszont csak példányosítással működik, tehát szerintem nem jól demonstrál.

(#9924) Aethelstone válasza user112 (#9923) üzenetére


Aethelstone
addikt

Mit nem demonstrál jól? Mi a célja a példaprogramnak? Egyébként meg pont úgy működik, ahogy kell neki.

[ Szerkesztve ]

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9925) Aethelstone válasza user112 (#9923) üzenetére


Aethelstone
addikt

Azért kell példányosítani, mert a main metódus nem része az osztálynak.

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9926) Atapi válasza Aethelstone (#9925) üzenetére


Atapi
senior tag

szvsz inkább azért kell példányosítani, mert nem csak osztályszintű metódusokhoz és változókhoz szeretne hozzáférni (prrint(), tandij). Példányváltozója pedig egy adott példánynak van (aka objektum állapot), illetve példány metódust is csak adott példányon lehet meghívni (aka objektum állapot változás, viselkedés). Ha csak az alapTandij értékéhez szeretne hozzáférni, akkor nincs szükség példányosításra, mivel az static (osztályszintű).
a main helye ebből a szempontból szerintem irreleváns, jogosultsági kérdések esetén lenne jelentősége.

(#9927) Aethelstone válasza Atapi (#9926) üzenetére


Aethelstone
addikt

Amit én írtam, az kb. ugyanez.

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9928) #81999360


#81999360
törölt tag

Sziasztok,

mivel látom a topikban nincs összefoglaló, segítséget szeretnék kérni.

Ti most hogyan kezdenétek neki az alapoktól a Java programozásnak?
Általában redditen szoktam nézegetni de a /r/learnjava oldalon nem találtam semmi olyasmit.

(#9929) Zsoxx válasza #81999360 (#9928) üzenetére


Zsoxx
senior tag

Vannak ingyenes YT videók, pl. SFJ. Amúgy épp most indul egy fél éves tanfolyam, 750.000+áfa.

(#9930) Victoryus válasza #81999360 (#9928) üzenetére


Victoryus
addikt
LOGOUT blog (1)

Sololearn, alapokra jó. Igaz angolul van.

Eladó Lego: 42139 All terrain vehicle

(#9931) Taoharcos


Taoharcos
aktív tag

Sziasztok!

Egy webservice-nek (Restcontroller-es) lehet paraméterként tree-t, list-t stb komplexebb objektumokat bemenő paraméterként megadni? Ha igen tudnátok valami példát? A lényeg, hogy nem lehet tudni az elemszámot, csak azt hogy milyen kollekció.

[ Szerkesztve ]

(#9932) mobal válasza Taoharcos (#9931) üzenetére


mobal
MODERÁTOR

Miért ne lehetne? Vissza szerializálod és feldolgozod.

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#9933) headstone válasza #81999360 (#9928) üzenetére


headstone
újonc

Szia!

Ha mar onkepzesrol van szo meg annyit tennek hozza hogy vannak nagyon jo interaktiv oldalak. Elso sorban a codecademy-t ajanlanam.
Aztan kis gyakorlasnak codingbat, hackerrank, codewars. Illetve az OCP JavaSE vizsgafelkeszito konyvet. Sok sikert!

It was a bright cold day in April, and the clocks were striking thirteen.

(#9934) Aethelstone válasza Taoharcos (#9931) üzenetére


Aethelstone
addikt

Pontosan, ahogy a kolléga írta. Jackson, Json, Gson témakörben nézelődj.

Szerk, hogy webservice. Hmm. Rest vagy webservice? Nem jó keverni. A rest alapvetően json (ez a szokás), a webservice xml.

[ Szerkesztve ]

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9935) Lortech válasza Aethelstone (#9934) üzenetére


Lortech
addikt

Ha restcontroller, akkor feltetelezhetjuk, hogy spring @RestController, default jackson, es @RequestBody automatikusan deszerializalodik (sajat típus is), ha lehetseges. Tehat nem feltetlenul kell egyedi (de-) szerializaciot faragni hozza.
REST(-ful webservice) pedig ugyancsak webszerviz ebben a kontextusban, ahogy a SOAP, en nem szeretem ezt a megkulonboztetest.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#9936) XP NINJA


XP NINJA
őstag

Sziasztok! Tudnátok ajánlani valami anyagot c#-ról javara való áttéréshez? :)

(#9937) emvy válasza XP NINJA (#9936) üzenetére


emvy
nagyúr

Sor, marihuana.

while (!sleep) sheep++;

(#9938) Zsoxx válasza XP NINJA (#9936) üzenetére


Zsoxx
senior tag

Java tanfolyamot javaslok.

(#9939) emvy válasza Zsoxx (#9938) üzenetére


emvy
nagyúr

Szerintem tok felesleges. (En anno ugy mentem el senior java devnek, h elotte csak C++, C#-ot meg ilyesmiket irtam -- kb. zero energia felszedni a par build toolt meg a nyelvet. Az mas kerdes, h JEE expertnek nem tudsz igy beallni.)

while (!sleep) sheep++;

(#9940) #68216320


#68216320
törölt tag

Sziasztok, egy kis segítségre volna szükségem egy probléma megoldását illetően.

Szükséges volna egy WEB-es felületen egy SQL tábla adatait táblázatosan megjelenítenem.
A problémát az okozza, hogy amolyan "observer"-es megoldással, ha az SQL tábla adatait egy másik felhasználó megváltoztatja akkor automatikusan ennek az én webfelületemen is frissülnie kellene.
Milyen megoldással/technológiával lehetne megoldanom, hogy az observer-em ilyenkor request nélkül egy response-t csináljon a servlet-es webfelületen?

Update: A dolog még csak tervezési fázisban van, teljes szabadság van az adott technológia kiválasztásában. Egyetlen megközés, hogy Tomcat alatt fusson.

[ Szerkesztve ]

(#9941) sztanozs válasza #68216320 (#9940) üzenetére


sztanozs
veterán

Nincs response request nélkül. Ezt valami aktív technológiával lehet megoldani (vagy valami frameworkkel, vagy sima webservice + időzített ajax lekérés)

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9942) #68216320 válasza sztanozs (#9941) üzenetére


#68216320
törölt tag

Nincs response request nélkül

Igen, tudom. Pont ez okozza a problémát. A swing-es gui-ban ugye így van megcsinálva (ugyebár ott sima ügy) és megszokták.
Az ajax esetében esetleg valami megoldással azt volna csak gondolom első lépésben megkérdezni, hogy volt-e változás. Már csak a felesleges kommunikáció minimalizálása érdekében. Ha volt akkor kellene gondolom a táblázat adatait frissítenem.

Ha fw akkor milyen framework volna megfelelő?

(#9943) RexpecT válasza #68216320 (#9940) üzenetére


RexpecT
addikt

Kis guglizással szerintem ezt keresed: Server-Sent Events (SSE)

(#9944) #68216320 válasza RexpecT (#9943) üzenetére


#68216320
törölt tag

Aha, ez olyasminek tűnik, átolvasom. Köszönöm a linket.

(#9945) Rickeffe válasza #68216320 (#9942) üzenetére


Rickeffe
aktív tag

A pollingot akartam javasolni de az nem minimalizál :)

[ Szerkesztve ]

Rickeffe

(#9946) Aethelstone


Aethelstone
addikt

Esetleg websocket vagy Vaadin Framework :)

MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...

(#9947) Kislulu89


Kislulu89
újonc

Sziasztok!
Egy kis segítséget szeretnék kérni egy egyszerű feladathoz:

Készíts programot, ami beolvassa egy téglatest három élének hosszát, és kiírja a térfogatát és a felszínét!

A programba bevitt adatok helyesek és a program tört értéket is elfogad. Az eredményt egy tizedesjegyre kerekítve, vesszővel írjuk ki! (System.out.printf)
Figyeljünk a szóközökre és soremelésekre, a kimenet ehhez hasonló kell legyen:

Példa:
Téglatest térfogat- és felszínszámoló
a=10
b=20
c=15
Felszín: 1300,0
Térfogat: 3000,0

A vastagon szedett részt a felhasználó írta be.

A problémám az, hogy a feladatot egy program vizsgálja át, és csak 57%osra értékeli. Működik, megcsinálja amit kell(NetBeansben tökéletesen lefut), szerintem ugyanúgy néz mint ahogy a példa. Nem találom a hibát.

A programom a következő:

package tegla;

import java.util.Scanner;

public class Tegla {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Téglatest térfogat- és felszínszámoló ");
System.out.print("a=");
double a = sc.nextDouble();
System.out.print("b=");
double b = sc.nextDouble();
System.out.print("c=");
double c = sc.nextDouble();
double felszin = 2*(a*b+a*c+b*c) ;
double terfogat = a*b*c;
System.out.printf("Felszín: %.1f \n",felszin);
System.out.printf("Térfogat: %.1f \n",terfogat);

}

}

Előre is köszönöm a segítséget.

(#9948) Zsoxx válasza Kislulu89 (#9947) üzenetére


Zsoxx
senior tag

Miért a main-ben számolsz? A számoló metódust és a változókat a Tegla osztályban definiáld, utána példányosítsd és az objektumon hívd meg a metódust a main-ben.

(#9949) Kislulu89 válasza Zsoxx (#9948) üzenetére


Kislulu89
újonc

Köszönöm a válaszod.
Még csak most kezdtem a programozást, sajnos az általad javasoltakat nem tudom jelenlegi tudásommal megoldani. :(

(#9950) Zsoxx válasza Kislulu89 (#9949) üzenetére


Zsoxx
senior tag

Feltételezem, hogy azért csak 57 %, mert nem objektumorientáltan van programozva. Java-ban lehetőleg erre kell törekedni (az OOP-re).

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Java programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.