Hirdetés

2024. június 16., vasárnap

Gyorskeresés

Útvonal

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

Hozzászólások

(#3351) n00n válasza WonderCSabo (#3350) üzenetére


n00n
őstag

Találtam egy ilyet: Bug #6445283

Ez a jelenség ami nálam is van:

"Progress monitor goes to 100% at 2GB, then back to 0%, stays at 0% until 4GB is reached, then goes from 0% to 100% at 6 GB, etc. User has no idea how long entire file will take or may think process is "hung" after 2GB."

Van egy workaround, viszont nem értem mit kellene csinálni:

"CUSTOMER SUBMITTED WORKAROUND :
I've changed the ProgressMonitorInputStream class to "scale" the progress to 32 bits (so ProgressMonitor can use it) after obtaining the file size using FileChannel.size() if the input parameter to ProgressMonitorInputStream constructor is instanceof FileInputStream."

(#3352) TBG válasza n00n (#3351) üzenetére


TBG
senior tag

Nem elég részletes a workaround. Belenyúlt a gyári osztályba vagy csak egy @Override-t használt?

Szerk:

http://developer.classpath.org/doc/javax/swing/ProgressMonitorInputStream-source.html

Elvileg egy extend elég lenne, csak a ProgessMonitor ugyancsak int-et vár és nem long-ot. :(
76-93

Szóval azt is extendálni kellene...

[ Szerkesztve ]

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3353) n00n válasza TBG (#3352) üzenetére


n00n
őstag

Hagytam az egészet inkább és írtam magamtól egy JDialogot egy JProgressbar-ral. Mondjuk azért meglep, hogy egy ekkora bug nincs javítva a Java-ban. Más nem fut bele? Azért ez nem valami szélsőséges felhasználás szerintem, hogy 2GB-nál nagyobb fájlt akarok vele másoltatni és frissíteni a progresst.

(#3354) TBG válasza n00n (#3353) üzenetére


TBG
senior tag

Ennél nagyobb bugok is vannak :) Egyébként a 2 GB-nél nagyobb fájl másolása progress barral nem napi szintű feladat...az ilyeneket általában maintenance jelleggel, háttérben csinálják.

[ Szerkesztve ]

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3355) SaNyEe


SaNyEe
aktív tag

Sziasztok,

Problémám akadt glassfish környezetben.

JSP + Servlet technikát alkalmazok.

JSP:
<select name="car_makes" multiple>
<option value="1">egyik</option>
<option value="2">masik</option>
<option value="3">harmadik</option>
</select>

Servlet:
System.out.println("Gyártók: "+request.getParameter("car_makes");
Csak az első bejelölt opciót adja vissza mint azt a getParameter() metódusnév sugallja is.
Hogy lehet ezt a jellegű multiple select problémát feloldani?

[ Szerkesztve ]

-- end of transmission --

(#3356) modder válasza SaNyEe (#3355) üzenetére


modder
aktív tag

cső

http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getParameterValues%28java.lang.String%29

egyébként multiple="multiple" legyen az (x)html kódban, mert az a szabvány nem támogatja az érték nélküli attirbútumokat, szóval nem köteles minden böngészőben működni ...ásszem :)

[ Szerkesztve ]

(#3357) SaNyEe válasza modder (#3356) üzenetére


SaNyEe
aktív tag

köszi.

Sajnos ahány böngésző annyi szabódványértelmeződés :DDD de köszönöm, javítom

-- end of transmission --

(#3358) pvt.peter


pvt.peter
őstag

Sziasztok!

Egy kérdés merült fel bennem interfészekkel kapcsolatban.
Tehát interfész definíciója: (teljesség hiányával)
"Minden operáció impliciten absztrakt"
->tehát csak az adott fgv. feje van az interfészben, tehát csak definiálva van

Az implicit szót nem véletlen emeltem ki az előbb.
Azt is tudjuk, hogy az interfész az egy speciális absztrakt osztály.
Absztrakt osztály definíciója, többek közt:
Egy osztály absztrakt osztály, ha legalább egy absztrakt metódust tartalmaz.

Egy absztrakt osztály tartalmazhat olyan absztrakt függvényt, amelynek van implementációja abban az adott absztrakt osztályban.

És itt jönne a kérdésem:
Impliciten absztraktnak nevezzük az előbb említett interfészben levő operációt, míg explicitnek nevezzük az utóbb említett absztrakt osztályban levő absztrakt függvényt amelynek van implementációja?

A kérdésemmel arra szeretnék rávilágítani, hogy helyesen mondtam-e az explicit és az implicit közötti különbséget.

Illetve lenne még vmi.
Az interfész osztály és az absztrakt osztály közötti különbségek.
E kettő dolog között a különbség "szinte" csak az abstract és az interface kulcsszavak.
Mi még köztük a különbség? Melyiket érdemes használni?

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#3359) sutszi válasza pvt.peter (#3358) üzenetére


sutszi
veterán

Majd ezt még kiegészítik páran...mert amit írok kevés de egy alapvető dolog:
Interfészből bármennyit implementálhat egy osztály.
DE egy osztály csak egyetlen őssel rendelkezhet.
Ezért el kell dönteni a tervezési fázisban, hogy egy adott dolog esetén melyiket kell használni...

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#3360) Davs


Davs
tag

Hali!
Singleton osztalyokkal es GC-vel kapcsolatban lenne egy kerdesem..Ha van egy osztalyom, pl
public MyClass {
private static MyClass myClassInstance = null ;
private MyClass() {}

public static MyClass getInstance() {
if(myClassInstance == null) { myClassInstance = new MyClass(); }
return myClassInstance ;
}
}

Naugye most az osztalynak van referenciaja sajat magara. GC amennyire en tudom addig nem torol egy objektumot, amig van ra valahol strong reference. Mi a helyzet ebben az esetben? Mikor fogja a GC torolni az osztaly? Van kulonbseg az kozott, hogy egy osztalynak van referenciaja magara es akozott, hogy mas osztalynak van referenciaja az adott osztalynak?

(#3361) Peter Kiss válasza Davs (#3360) üzenetére


Peter Kiss
senior tag

Amikor megáll az AppDomain.

(#3362) Gyuri16 válasza Davs (#3360) üzenetére


Gyuri16
senior tag

amig van referencia az objektumra, addig a gc nem torli. Singleton eseteben tobbnyire azt jelenti, hogy amig fut a program addig letezik az objektum is (amig van referencia a classloaderre).

masik dolog: nem ajanlom, hogy igy implementald a singletont, a lazy initialization tobb threades kornyezetben kellemetlenseget okoz. egyszerubb igy
private static MyClass myClassInstance = null ;
helyett
private static MyClass myClassInstance = new MyClass();

Nem vagyok egoista, csak uborkagyalu!

(#3363) WonderCSabo válasza Gyuri16 (#3362) üzenetére


WonderCSabo
félisten

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;
}
}

(#3364) Gyuri16 válasza WonderCSabo (#3363) üzenetére


Gyuri16
senior tag

persze, lehet igy is, csak nem latom ertelmet a lazy init.-nek. Singletonnal mast nem lehet csinalni, csak meghivni a getInstance fuggvenyet, ekkor betolti a classloader es letrejon az objektum is. Te szokod hasznalni az osztalyt anelkul, hogy szukseg lenne peldanyositani?

Nem vagyok egoista, csak uborkagyalu!

(#3365) WonderCSabo válasza Gyuri16 (#3364) üzenetére


WonderCSabo
félisten

Általában akkor szoktam lazy initet használni, ha valami nagy memória igényű cuccot töltök be, és felesleges lenne addig lefoglalni vele a memóriát. Androidon sokszor nagyon spórolnom kell.

(#3366) TBG válasza pvt.peter (#3358) üzenetére


TBG
senior tag

Az interfész osztály és az absztrakt osztály közötti különbségek.
E kettő dolog között a különbség "szinte" csak az abstract és az interface kulcsszavak.
Mi még köztük a különbség? Melyiket érdemes használni?

Azért ez nem így van. Az interfész gyakorlatilag csak meghatároz megvalósítandó metódusokat.
Ezzel szemben az absztrakt osztályban lehetnek absztrakt metódusok, amiket meg kell valósítani az örökösnek, DE lehetnek benne nem absztrakt metódusok is, amik valami konkrétumot csinálnak.

Persze ezt lehet variálni, amikor egy absztrakt osztály megvalósít egy interfészt, de az implementációk absztraktok lesznek.....így azokat az örökösben kell implementálni...és ott már gyakorlatilag nem látszik, hogy az eredetileg az absztrakt osztály absztrakt metódusait valósítom meg vagy az absztrakt osztály által implementált interfész metódusait :)

És melyiket érdemes? Erre nincs egységes recept. Általánosságban elmondható, hogy ha többszörös öröklődést akarsz megvalósítani(ami Javában alapból nincs), akkor interfész, de ha tuti, hogy csak egy őst akarsz, de kellenek default metódusok is, akkor absztrakt. Perszem azt is lehet, hogy

Interface-->default class implements interface-->örökös

vagy

absztrakt class-->örökös

vagy

Interface->absztrakt class absztrakt metódusok-->örökös

szóval...a lehetőségek végtelen tárháza :)

[ Szerkesztve ]

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3367) Peter Kiss válasza pvt.peter (#3358) üzenetére


Peter Kiss
senior tag

Abstract osztályt lehet verziózni (beépíthető plusz metódus default implementációval), míg egy interface-t nem.

(#3368) TBG válasza WonderCSabo (#3365) üzenetére


TBG
senior tag

ha valami nagy memória igényű cuccot töltök be

Ilyet én nem tennék singletonba..se lazy se eager módon...helper osztályok :) Bár androidot még sosem programoztam, ezért csak eméletileg pofáztam bele :R

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3369) fatal` válasza pvt.peter (#3358) üzenetére


fatal`
titán

"Mi még köztük a különbség? Melyiket érdemes használni?"
Származtatáskor van különbség. Ha nincs szükséged semmilyen függvény implementációjára (értsd, olyan abstract osztályod lenne, amiben csak abstract függvények vannak), akkor érdemes interfacet használni, mert interfaceből egy osztály bármennyit implementálhat, viszont származtatni csak egy osztályból lehet.

(#3370) pvt.peter válasza Peter Kiss (#3367) üzenetére


pvt.peter
őstag

@sutszi, @TBG, @hunfatal köszönöm szépen a válaszokat :)

illetve @Athlon64+
"Abstract osztályt lehet verziózni"
erre tudnál nekem egy példát mutatni, hogy ez mit is jelent?

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#3371) Peter Kiss válasza pvt.peter (#3370) üzenetére


Peter Kiss
senior tag

Van egy abstract osztályod, benne dolgokkal. Két év múlva kiderül, hogy jó lenne, ha lenne benne plusz egy metódus. Simán lehet módosítani az osztályt anélkül, hogy a régi kódokat elrontanád vele.

Interface esetén ezt nem lehet kivitelezni: ha bekerül az interface-be egy plusz elem, akkor azt a régi kódokban is implementálni kell. (Abstract osztály esetén lehet pl. az adott új metódusnak üres blokkja vagy egy default implementációja (pl. return null; ).)

[ Szerkesztve ]

(#3372) TBG válasza Peter Kiss (#3371) üzenetére


TBG
senior tag

Interface esetén ezt nem lehet kivitelezni: ha bekerül az interface-be egy plusz elem, akkor azt a régi kódokban is implementálni kell

Elvileg egyébként erre is van megoldás.

[link]

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3373) Peter Kiss válasza TBG (#3372) üzenetére


Peter Kiss
senior tag

Nem, ez nem megoldás rá. Csak akkor segítene, ha egy közös adapterrel dolgozna minden, de akkor semmi értelme interface-t használni.

(#3374) pvt.peter válasza Peter Kiss (#3371) üzenetére


pvt.peter
őstag

Értem, köszönöm a választ.

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#3375) WonderCSabo válasza Peter Kiss (#3373) üzenetére


WonderCSabo
félisten

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.

(#3376) artiny


artiny
őstag

Java programozáshoz létezik magyar turtorial video, esetleg ha nincs valami nagyon jo konyv?

(#3377) TBG válasza Peter Kiss (#3373) üzenetére


TBG
senior tag

Igaz. Egy cseppet benéztem. Az adapter arra megoldás, hogy ha van egy interfészed, aminek van 100+1 metódusa, de egy új metódust nem kell mindenhol feltétlenül megvalósítani, hanem alapértelmezésben csak egy üres metódusblokk lenne null visszatérési értékkel.

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3378) RaPiDsHaRe


RaPiDsHaRe
aktív tag

Sziasztok!

Az Eclips-nél, ha Java-t szeretném használni, hogy kell beállítani, hogy rendesen működjön? Mert a File\New\ JPA Project-re mentem, de ott eladtam.

(#3379) pakriksz


pakriksz
őstag

Egy xml-t szeretnék módosítani, és menteni, és ez mind működik.
A probléma az, hogy egy hulladék gány programnak készül ez az xml, ami a void tag-et (vagy hogy hívják) nem fogadja el. Tehát ha a tagek közötti érték semmi, az hogy <Valami/> az nem jó neki (márpedig a java így állítja elő), csak a <valami><valami/> jó
Erre azt találtam ki, hogy ahol üres az érték, beszúrok egy spacet így lesz <valami> <valami/> de ez sem jó neki mert a spacet értéknek veszi...
Transformer osztályt használok, és DOM-ból jön az xml.

Mi erre a megoldás?

[ Szerkesztve ]

Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"

(#3380) Superhun válasza RaPiDsHaRe (#3378) üzenetére


Superhun
addikt

A JPA projekt az webes alkalmazás, te gondolom asztali gépre akarsz fejleszteni. Ezt töltsd le.

(#3381) RaPiDsHaRe válasza Superhun (#3380) üzenetére


RaPiDsHaRe
aktív tag

Igen arra szeretnék. Annyi változat volt fenn az oldalon, hogy nem tudtam eldönteni melyik lenne a jó így leszedtem ezt "Eclipse IDE for Java EE Developers".

(#3382) sutszi válasza RaPiDsHaRe (#3381) üzenetére


sutszi
veterán

A Classic-ot szedd le, az kell neked.

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#3383) RaPiDsHaRe válasza sutszi (#3382) üzenetére


RaPiDsHaRe
aktív tag

Amit linkeltél azt már leszedtem. A fordítónak a helyét megkel adni az Eclips-nek ?

(#3384) sutszi válasza RaPiDsHaRe (#3383) üzenetére


sutszi
veterán

Azt nem én linkeltem, csak egyforma az avatar...

A Window-> Preferences -> Installed JRE-be tudod megadni a futtatókörnyezet helyét...
Tudtommal mást nem kell...

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#3385) TBG válasza pakriksz (#3379) üzenetére


TBG
senior tag

A fogadó oldalt kell átírni :) space helyett egyébként egy üres string? ördögűzés, de ki tudja:)

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3386) RaPiDsHaRe válasza sutszi (#3384) üzenetére


RaPiDsHaRe
aktív tag

Tényleg, csak az avatar-t néztem.

A futtató környezetet megadtam, és a egy könyvhöz adott cd-vel kiakartam próbálni ezt a hibát írja ki:"Error: Could not find or load main class Saluton"

(#3387) Davs válasza RaPiDsHaRe (#3386) üzenetére


Davs
tag

Szerintem CLASSPATH hiba..Letre kell hozni windowson egy CLASSPATH nevu enviromental variablet, aminek az erteke "." (" nelkul). Sajatgepen jobbklikk -> Properties -> Advanced system settings es a felugro ablak aljan ott a gomb

(#3388) sutszi válasza RaPiDsHaRe (#3386) üzenetére


sutszi
veterán

Mondjuk lehet hülyeséget mondok most de érdemes feltenni a Java JDK-t és akkor az megcsinálja a classpath-ot is...

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#3389) RaPiDsHaRe válasza sutszi (#3388) üzenetére


RaPiDsHaRe
aktív tag

A JDK-az már fenn van.

Davs: Ezt most az Eclips-ben, vagy win-ben állítsam ?

[ Szerkesztve ]

(#3390) sutszi válasza RaPiDsHaRe (#3389) üzenetére


sutszi
veterán

Windsows-ba kell.

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#3391) pakriksz válasza TBG (#3385) üzenetére


pakriksz
őstag

nem lehet átírni a fogadó oldalt. Üres stringnél a leírt módon zárja le, <Valami/>-ként.

Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"

(#3392) TBG válasza pakriksz (#3391) üzenetére


TBG
senior tag

Mivel úgy helyes. Egyelőre passz.

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3393) RaPiDsHaRe válasza Davs (#3387) üzenetére


RaPiDsHaRe
aktív tag

Ezt kellene beállítani?

[ Szerkesztve ]

(#3394) pakriksz válasza pakriksz (#3391) üzenetére


pakriksz
őstag

most egy olyat csináltam, hogy fájl helyett egy stringbe írja ki az egész xmlt, amire nyomok egy replaceallt. System out-on jól is néz ki, de ha fájlban írom randomban kihagy sorokat, lehagyja a sor elejét, és ilyesmik.

Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"

(#3395) Lortech válasza Davs (#3387) üzenetére


Lortech
addikt

Egy akármi alkalmazás futtatása miatt nem szoktunk globálisan classpatht beállítani. Kényelmetlen, értelme nem sok, és alattomos problémákhoz vezethet, ha az ember megfeledkezik róla. Ha már a CLASSPATH környezeti változóval akarunk classpatht megadni a jvm-nek, akkor az alkalmazás indítóscriptjében egyszerűen beállítjuk a változót.
run.bat tartalma:
SET CLASSPATH=..\classes
java package.akarmi.MainClass

Egy-két cp bejegyzésre ez is felesleges, helyette:
java -classpath ..\classes package.akarmi.MainClass

[ Szerkesztve ]

Thank you to god for making me an atheist

(#3396) Superhun válasza RaPiDsHaRe (#3393) üzenetére


Superhun
addikt

Start menü keresőjébe: a rendszer környezeti változóinak módosítása

Legalul lesz egy gomb: Környezeti változók. Alul Új gomb, névhez: CLASSPATH, értékhez egy pont.

De ez tényleg veszélyes lehet, inkább csináld azt, amit előttem írt a kolléga. :)

[ Szerkesztve ]

(#3397) RaPiDsHaRe válasza Superhun (#3396) üzenetére


RaPiDsHaRe
aktív tag

Megcsináltam de még így se megy :W

(#3398) TBG válasza pakriksz (#3394) üzenetére


TBG
senior tag

Akkor a fájlbaírást kellene kicsit átnézni :) Javaslom egyébként a sax parser használatát a DOM helyett....

ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.

(#3399) pakriksz válasza TBG (#3398) üzenetére


pakriksz
őstag

nézegethetem, nem lehet vele mit tenni. A transformer egyben adja ki az egészet, 1 stringbe megy. És a java mint írtam megbolondul egy bizonyos stringhossz után (sorok elejét lehagyja, randomban eltologatja a tageket, stb).
a sax nagyon dzsunkának néz ki, kb olyan mintha binárisba kódolnék programot :D És biztos hogy a végeredmény is ugyan ez lenne.

[ Szerkesztve ]

Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"

(#3400) pakriksz válasza pakriksz (#3399) üzenetére


pakriksz
őstag

persze favágó módszerrel menne, hogy xml-be mentem, majd rögtön megnyitom readerrel, és soronként replace az összes > <-t ><-re. De nem ártana valami szebb megoldás.

Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"

Útvonal

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