játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9]
LugaidVandroiy - Törzstag | 504 hsz       Online status #177281   2012.03.31 17:57 GMT+1 óra  
Van egy kis problémám, amit nem teljesen értek. Szeretném az egyik programomat Appletté átalakítani. Az összes art egy statikus HashMap-ban van tárolva.

Kód:
public static HashMap<String, BufferedImage[]> assets = new HashMap<String, BufferedImage[]>();


Betöltésnél pedig a következő zajlik (ami lényeges):
Kód:
tImage = (BufferedImage)jApplet.getImage(jApplet.getCodeBase(), "/assets/snow.png");


Az a baj, hogy ez elvágódik egy Exception-al, de annak az üzenete null, így esélyem sincs meghatározni, hogy mégis mit cseszek el.

A betöltő függvény az Applet konstruktorában hívódik meg.

   
zeller - Törzstag | 464 hsz       Online status #176751   2012.03.24 08:05 GMT+1 óra  
Van itt valaki aki nagyon brutal-metal-durvan ert az eclipse RCP-hez? Mert akkor van egy kerdesem...

   
nab - Tag | 30 hsz       Online status #171616   2011.12.30 14:59 GMT+1 óra  
Megint tanultam valamit, kösz az infot.

   
zeller - Törzstag | 464 hsz       Online status #171602   2011.12.30 00:00 GMT+1 óra  
A java7 mersekelt fejlodes volt. De ha jovo ev vegen kijon a 8 es tenyleg lesz benne lambda, akkor meg nincs minden elveszve.

   
Parallax - Tag | 574 hsz       Online status #171584   2011.12.29 21:00 GMT+1 óra  
Dehogynem fejlesztik, nemrég jött ki a C++11 szabvány. C++ future. Kb mindenki ezt tekinti standarnek. Nekem a Java tűnik állóvíznek, nem nagyon halad semerre.

Az OpenGL azért nehezebb elsőre, mert mindent úgy kell összevadászni hozzá. Nincs benne textúra betöltés, input kezelés, kizárólag grafikai API.

   
nab - Tag | 30 hsz       Online status #171578   2011.12.29 19:45 GMT+1 óra  
Közben megnéztem a JMonkeyt ez nagyon frankó, inkább ezzel fogok próbálkozni

   
nab - Tag | 30 hsz       Online status #171573   2011.12.29 18:43 GMT+1 óra  
Azért OpenGL mert ha jól tudom egyszerűbb, java pedig azért mert ahhoz értek a legjobban, a c++ nem sértésnek szánom de elég halott dolognak tűnik számomra. Illetve több dolog nem tetszik benne,pl: már nem fejlesztik. A javat igen. Nem sokkal gyorsabb már a c++ a java -nál, és mivel nem akarok komolyabb játékot írni nem látom értelmét DirectX -nek nekifutni, valószínűleg elég nagyot is koppannék a nekifutáson

   
Parallax - Tag | 574 hsz       Online status #171572   2011.12.29 18:25 GMT+1 óra  
Miért OpenGL és miért Java? De, ha már ez a kettő, akár egy engine is lehet, nem? JMonkey

   
nab - Tag | 30 hsz       Online status #171568   2011.12.29 17:33 GMT+1 óra  
Sziasztok!

Java -ban szeretnék kipróbálni az OpenGL -es játékfejlesztést. Csak egyszerűbb dolgokat. Megvan Nyisztor Károly mind a két könyve belenézegetem van már róla némi fogalmam hogyan működik a 3dés alkalmazás fejlesztés. Z-Buffer, Mátrixok stb. Azonban a példák DirectX ben íródtak. Tudna valaki ajánlani egy könyvet? Nyelv lehet Magyar Angol vagy Olaszul.

A java -ban nem vagyok Profi de nem hiszem, hogy problémát okozna maga a programozás technika. Inkább maga az OpenGl okozza a problémát. Annyira már nem értek hozzá hogy tudjam az Lwjgl menyire követi az OpenGl sytaxisát. Tehát valami általános könyvre lenne szükségem , elég sok van fent az interneten nekem egy Beginner szintű kéne.

Lwjgl szeretnék használni, néztem a jogl -t is de lwjg kicsit összeszedetebnek tűnik.

Tud valaki egy jó könyvet? (C++ ban nem merem elkezdeni, meg a Java -t már jobban ismerem)

   
ddbwo - Tag | 1625 hsz       Online status #171235   2011.12.23 10:59 GMT+1 óra  
TY!
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
zeller - Törzstag | 464 hsz       Online status #171232   2011.12.23 10:41 GMT+1 óra  
A hivatalos sun(oracle) tutorialokban minden benne van, a legfrissebb verziohoz. http://docs.oracle.com/javase/tutorial/

   
ddbwo - Tag | 1625 hsz       Online status #171227   2011.12.23 09:55 GMT+1 óra  
"Noob to Pro" mi kell Java programozáshoz?
Itt leginkább a legegyszerűbb és legkevesebb helyet foglaló programra, meg tutorial linkekre gondolnék.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
borsi - Tag | 180 hsz       Online status #171125   2011.12.21 19:46 GMT+1 óra  
És valóban Valószínűleg 5x el fogok majd akadni közben de azért nem tűnik vészesnek ez a java.

   
zeller - Törzstag | 464 hsz       Online status #171123   2011.12.21 19:18 GMT+1 óra  
a windowbuilderrel nem csak gwt-t lehet, swinget es swt-t is.

   
borsi - Tag | 180 hsz       Online status #171122   2011.12.21 18:54 GMT+1 óra  
Közben rájöttem, hogy a linkelt plugin az webes java alkalmazásokhoz van, úgyhogy úgy döntöttem, inkább kódból rakom össze a swing guit.

   
zeller - Törzstag | 464 hsz       Online status #171120   2011.12.21 18:12 GMT+1 óra  
Sztem ez igy jo. Erdemes ezeket hasznalni.

   
borsi - Tag | 180 hsz       Online status #171117   2011.12.21 17:45 GMT+1 óra  
Javaban kéne összeraknom egy platformfüggetlen progit, amivel egy sqlite adatbázist lehet módosítgatni. A gui-nak képesnek kéne lennie png-t megjeleníteni és az sem ártana, ha a program képes lenne könyvátart létrehozni illetve fájlokat másolni.
Mivel a javaval még abszolút nem foglalkoztam, a kérdés, hogy milyen fejlesztőkörnyezetet használjak hozzá, mivel csináljam a gui-t, és mennyire lesz a végtermék így platformfüggetlen.
Amit összegúgliztam, hogy az eclipse WindowBuilder pluginel egy jó választás lehet a gui-hoz, és sqlite-hoz is találtam egy java drivert (SQLiteJDBC). Ezekkel tényleg érdemes foglalkozni, vagy tudtok jobbat?

   
Sharp - Tag | 130 hsz       Online status #169200   2011.11.22 10:24 GMT+1 óra  
Van egy Listener/Dispatcher(mindegy minek nevezzük, ez bind()-el és listen()-el egy portot, és accept()-eli a bejövő kérelmeket) osztályod, ami fogadja a bejövő kapcsolatokat, és mindegyiket átadja egy külön szálnak.
Ez az osztály nyugodtan használható arra, hogy beolvasson a konzolról, miután elvégezte a hálózati teendőit. De rakhatod külön szálra is, a te döntésed.
Arra figyelj, hogy ha külön szálra rakod, akkor bonyolultabb a közös erőforrások módosítása.
És természetesen a konzolról való olvasás nem lehet blokkoló.

Tegyük fel, hogy van egy parancsod:
Kód:
set maxUser 10

Ami beállítja a maximális kliens számot 10-re. Mivel a konzolod másik szálban fut, mint a Dispatcher, ezért nem állíthatja át közvetlenül a Dispatchered maxUser változóját, hanem szinkronizálni kell a hozzáférést.

Minden kapcsolódó kliensnek egy szálat kiosztani a feldolgozáshoz egy nagyon jó ujjgyakorlat, de javaslom, ha elkészültél vele, lépj tovább.
Kezdetben minden usernek te magad allokálj egy szálat. Azután használj ThreadPoolExecutor-t. Ez a már nem használt szálakat újrahasznosítja, így jelentős erőforrásokat spórol meg neked (egy szál létrehozása drága mulatság).

Azután dobd el a többszálasított verziót, és használd a java nonblocking IO-ban levő Selector osztályt. Itt egy nagyon jó leírás hozzá: link
A Selector segítségével 1 szálban foglalkozhatsz több ezer klienssel. Sokkal hatékonyabb.

Aztán ha ezzel is megvagy, ezt is lehet még többszálasítani

A fent leírtakat csak akkor járd végig, ha tanulni, gyakorolni és nagyon hasznos tapasztalatokat szerezni szeretnél.
Ha van egy konkrét feladatod, határidővel stb, akkor, ahogy zeller is említette, használj meglévő libet: Mina, Netty stb.

   
zeller - Törzstag | 464 hsz       Online status #169001   2011.11.19 16:37 GMT+1 óra  
Hazudnek, ha azt mondanam, hogy teljesen ertheto a kerdesed (szamomra). A kozos eroforrasokat nem szalasitani kell, hanem megvedeni a konkurrens hozzaferestol, szinkronizalassal. Ez egy eleg hosszu tema, aminek nem art utanamenned, ha tobbszalu kornyezetben akarsz fejleszteni.

De szerintem nem szukseges feltalalnod a spanyolviaszt, kismillio ingyenes java alkalmazasszerver van a piacon, es biztos naluk kevesebbet tudo http szerver implementaciok is akadnak.

   
robee00 - Tag | 90 hsz       Online status #168999   2011.11.19 16:07 GMT+1 óra  
Sziasztok!

Olyan kérdésem lenne, hogy egy multiklienses java szervert kezdtem írni, melynek van egy grafikus parancssora, oda lehet bepötyögni bár parancsot. Na most, ehhez a szerverhez szeretnék csatlakozni másik programmal, persze többel is egyszerre. Ugye ha sockettel csatlakozok, akkor szálasítani kell a szervert, hogy egyszerre több klienssel is tudjon dolgozni. A kérdésem, hogy a "parancssort" is külön szálra kell rakni, hogy ne zavarjon be a dologba? Még új ez a szálasítás

   
zeller - Törzstag | 464 hsz       Online status #168843   2011.11.17 17:46 GMT+1 óra  
De lehet, csak ez kicsit bonyolutabb. Az altalad definialt enum tipus a java Enum osztaly egy gyerekeve fordul, ami annyit jelent, hogy az enum is egy osztaly, tehat mezoket deklaralhatsz neki.
A szabalyok, hogy a ctora mindig privat (vagy package) kell legyen es az osszes mezojet szettelnie kell.
Pl:
Kód:
enum Kolbasz {
GYULAI(1000), CSABAI(2000);
  int ar;
  private Kolbasz(int ar) {
    this.ar=ar;
  }
}


Olvasnivalo: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

   
kompabt - Tag | 27 hsz       Online status #168836   2011.11.17 16:25 GMT+1 óra  
sziasztok!

Java-ban az enum típushoz nem lehet egész értéket társítani, mint c++-ban?

   
Joderida - Tag | 55 hsz       Online status #168122   2011.11.06 18:48 GMT+1 óra  
Köszönöm a segítséget.
A kódírás amúgy a fejlesztés egyik folyamata csak. Először ronda, de működik a kód, majd később szebb és tökéletesebb lesz.
De át fogom nézni a Java konvenciót, már találtam is hozzá egy pdf-et .

   
Sharp - Tag | 130 hsz       Online status #168001   2011.11.05 09:19 GMT+1 óra  
Bemásoltál két kódrészletet: az egyik egy konstruktor, a másik pedig annak meghívása. Szerintem a baki ezeken a kódrészeken kívül történik.
Nem lehet, hogy a
Kód:
modell_vector.add(new Modell_part(modell_part_name, My_buffers, points, _nrOfIndices));

után módosítod a points objektumot? Szerintem ez volt a gondod. Egyszerűen módosítod azt az objektumot, amire hivatkozik az összes Modell_part objektumod. A buffer meg azért nem változik, mert azt vagy nem módosítod, vagy abból újat példányosítasz, és okosan, azt adod át a konstruktornak.

Javaslom ezt a helyzetet a konstruktorban kezeld le, ne annak meghívásán kívül. A konstruktorban másold le azokat az objektumokat, amiket kívülről kapsz meg, így az objektumod nem fog függeni semmilyen külső implementációtól.

A kódod amúgy ritka ronda, nem irigyellek .
Kód:
this.normalBuffer = My_buffers._normalBuffer;

Bármelyik Java programozó ránéz erre a sorra, kontextustól függetlenül, és azt mondja, hogy a My_buffers egy osztály, aminek a _normalBuffer egy statikus tagja. Aztán megnézi az argumentum listát, és mégsem így van...
Használd a Java konvenciót magad és mások érdekében. Nézz utána mi az.

Én is ArrayListet használok minden esetben, Vector a múlté, zeller nagyon jól kifejtette a főbb indokokat.

   
zeller - Törzstag | 464 hsz       Online status #167975   2011.11.04 17:34 GMT+1 óra  
Margora:
Attol meg, hogy egy kontener szalbiztos, a muveleteidet is azza kell tenni.
Az, hogy hogyan noveli egy kontener a meretet, hacsak nincsen a JLS-ben kobe vesve, akkor JDK(/JVM) implementacio fuggo.

   
Joderida - Tag | 55 hsz       Online status #167971   2011.11.04 17:00 GMT+1 óra  
Köszi Zeller a választ, valóban kicsit ködösítetten fogalmaztam meg a kérdésem, mert nem volt időm rá, de nem akartam növelni a változóim értékét, hanem mindig a modelljeim középpontját, vertexek pontját stb. akartam hozzáadni az aktuális modell részéhez, s a gondom az volt, hogy a legutoljára hozzáadott értéket kapta meg az összes modell rész. lásd lejjebb:

vektor(i) [20.0,20.0,20.0]
vektor(i+1) [20.0,20.0,20.0]
vektor(i+2) [20.0,20.0,20.0] //Az utoljára hozzáadott értékét veszi át a feljebb levő értékek

Itt az arraylist és a vector közötti külömbség amúgy:
http://www.javaworld.com/javaworld/javaqa/2001-06/03-qa-0622-vector.html

Nekem a Synchronization eleje és a Data growth vége győzött meg, hogy a vektort válasszam, de ki tudja lehet áttérek az arraylist/linked list/lehet sima tömböt fogok használni . Meglátjuk, minden esetre mégegyszer köszönöm a válaszod.

   
zeller - Törzstag | 464 hsz       Online status #167966   2011.11.04 15:29 GMT+1 óra  
Nem egeszen ertelek, de talan a problemadra tudom a valaszt.
A
Kód:
points = null;

olcsobban nullazza a referenciat.
Akarhanyszor uj elemet adsz a vektornak, egy uj objektum peldanyt dobj be neki.
Javaban minden objektum valtozo referencia tipusu (csak a primitiv tipusok tartalmaznak kozvetlenul erteket). Amikor egy objektumot argumentumkent adsz at, akkor a cimet tartalmazo valtozo masolatat adod at igazabol. (A parameteratadas mindig pass-by-value.)
Szoval ha az elozohoz kepest akarod megnovelni az objektum valtozoinak ertekeit, akkor eloszor masold le, majd a masolathoz add hozza a dolgokat es ezt tedd be a vektorba.
Ja es Vector helyett hasznalt ArrayListet, ha nem kell szalbiztos legyen az alkalmazas, mar ha eddig a Vector classra utaltal.

   
Joderida - Tag | 55 hsz       Online status #167934   2011.11.04 11:03 GMT+1 óra  
Problem Solved.
Az utolsó részemen elgondolkodtam, és kipróbáltam ezt:
Kód:
points = new Modell_points();

"Tehát megszüntetem a hivatkozást." Viszont még mindig érthetetlen számomra, hogy a Bufferek miért nem változtak meg. Ötlet?

ui.: Vagy ezen sorok után is "elveszti a refferenciát"? Hiszen magához az objektumhoz nem érek.
Kód:
ByteBuffer vbb = ByteBuffer
.allocateDirect(My_arrays._vertex_array.length * 4);
vbb.order(ByteOrder.nativeOrder());
My_buffers._vertexBuffer = vbb.asFloatBuffer();


Ezt azért jó lenne kideríteni, remélem valaki ezt meg tudja magyarázni. Köszönöm.

Ezt a hozzászólást Joderida módosította (2011.11.04 11:51 GMT+1 óra, ---)

   
Joderida - Tag | 55 hsz       Online status #167933   2011.11.04 11:03 GMT+1 óra  
Sziasztok!
Megakadtam egy Androidos játék fejlesztése során, röviden egy vektorban tárolom az objektumom részeit-egy-két adatot róla.
Ezt hívom meg:
Kód:
modell_vector.add(new Modell_part(modell_part_name, My_buffers, points, _nrOfIndices));

És itt a kód amivel gondom van:
Kód:
public Modell_part(String modell_part_name,
Loader_buffer_class My_buffers, Modell_points points,
int _nrOfIndices) {
this.modell_part_name = modell_part_name;
this.indexBuffer = My_buffers._indexBuffer;
this.normalBuffer = My_buffers._normalBuffer;
this.texturBuffer = My_buffers._texturBuffer;
this.vertexBuffer = My_buffers._vertexBuffer;
this.mshiarray = My_buffers._mshiarray;
this.mambarray = My_buffers._mambarray;
this.mdiffarray = My_buffers._mdiffarray;
this.mspecarray = My_buffers._mspecarray;
this._modell_part_center_point = points._modell_center_point;
this._modell_part_left_point = points._modell_left_point;
this._modell_part_right_point = points._modell_right_point;
this._modell_part_top_point = points._modell_top_point;
this._modell_part_bottom_point = points._modell_bottom_point;
this._modell_part_front_point = points._modell_front_point;
this._modell_part_back_point = points._modell_back_point;
this.nrOfIndices = _nrOfIndices;


(A points,My_buffers azok objektumok)
Mint lehet látni tárolom a vertexeket, indexeket, normálokat, textúra koordinátákat, a nevét a modellnek, és amivel gondom van a "nevezetes pontjait", amit egy algoritmussal számolok ki.

A problémám az az lenne, hogy, ha a modellem több részből áll, akkor fellülíródnak ezek a pontok, de a bufferek azok megmaradnak. Számomra érthetetlen módon, mivel mindegyiket egyformán kezelem, csak az a külömbség, hogy az egyik Buffer típusú a másik meg (egy dimenziós) tömb.
pl.:
Tehát, ha a vektor(i) modell résznek [0.0,0.0,0.0]-k voltak középpontjának a koordinátái, akkor a következő modell rész betöltése a vetkorba felülírja azt(vektor)(i+1)-nek adom a [10.0,10.0,10.0]-t:
vektor(i+1) modell rész [10.0,10.0,10.0]
(vissza nézve az i. elemet)
vektor(i) modell rész [10.0,10.0,10.0]

Ha ismét hozzáadok egy elemet pl.: [20.0,20.0,20.0]
akkor így alakulnak:
vektor(i) [20.0,20.0,20.0]
vektor(i+1) [20.0,20.0,20.0]
vektor(i+2) [20.0,20.0,20.0]
és így tovább...

Viszont a Buffereket nem írja fellül.
Lehet már én nem látom a fát az erdő miatt, remélem tudtok segíteni, köszönöm előre is.

/*ui.: Szerintem a gondom az lenne, hogy mivel elviekben objektumot adok át a tárolásra, így hát refferencia szerinti átadás történik valamiért ez nem hat ki a Bufferekre, annál inkább kihat a tömbökre, hogy lehetne megoldani, hogy ne egyesével adjam át a tömböket, de mégis a konstruktor tárolni tudja azokat. */

Ezt a hozzászólást Joderida módosította (2011.11.04 11:23 GMT+1 óra, ---)

   
zeller - Törzstag | 464 hsz       Online status #167396   2011.10.25 11:43 GMT+1 óra  
Ok, igazad van, csak szorszalat akarok hasogatni. Vegulis a Method is egy osztaly, amely rendelkezik a szukseges fuggvennyel...

----
Ja, par hettel ezelott hulyeseget irtam a szerializacioval kapcsolatban. Nem a defaultRead/WriteObjectet kell implementalni, hanem a read/writeObjectet...

----

Update:
java7ben van fp:
http://www.baptiste-wicht.com/2010/04/java-7-more-dynamics

Ezt a hozzászólást zeller módosította (2011.10.26 10:12 GMT+1 óra, ---)

   
Sharp - Tag | 130 hsz       Online status #167395   2011.10.25 11:27 GMT+1 óra  
Akkor hagyd el a finalt Amióta Scalazom, mindenhova odateszem, ha nincs ok az ellenkezőjére.

A függvénypointer egy ptr, ami függvényre mutat. Ilyen explicite nincs Javaban. De van referenciád, ami mutathat egy objektumra, ami rendelkezik a neked szükséges függvénnyel. Nem látok különbséget.

   
zeller - Törzstag | 464 hsz       Online status #167393   2011.10.25 10:26 GMT+1 óra  
Hat azert en erre nem mondanam, hogy fp. Ez a strategia minta.
Egyebkent ha finalra deklaraltad a referenciat, akkor nem veszik el a dinamikussag? (Azaz nem lehet a referenciat egy masik osztalyra allitani).

Ha szigoruan nezve a nyelvi lehetosegeket nezzuk a Methoddal jarsz a legkozelebb, csak a reflection miatt a sebesseg csokken, a tipusbiztossag bukik es egy csomo exceptiont le kell kezelni.

   
Sharp - Tag | 130 hsz       Online status #167389   2011.10.25 08:31 GMT+1 óra  
Nem tudom biztosra mit szeretnél, de vannak Javaban "függvénypointerek".

Kód:
interface Func {
  void apply();
}

class MenuPoint {
   private final Func myFuncPointer;
   MenuPoint( Func func ) { myFuncPointer = func; }
}

class Valami implements Func {
@Override public void apply() {/**valami implementáció*/}
}
..
MenuPoint mp = ....
mp.myFuncPointer.apply();


Tömörebb kódot kapsz, ha anonymous inner classokat használsz.

Kód:
MenuPoint  mp = new MenuPoint( new Func() {
  @Override public void apply() {/**valami*/}
});

   
zeller - Törzstag | 464 hsz       Online status #167388   2011.10.25 07:04 GMT+1 óra  
Szinte semmi, ez sztem az egyik legnagyobb hianyossaga a nyelvnek. A Reflection API Method osztalyat nezd meg.
A vezerelt menut esetleg command patternnel is megoldhatod delegate nelkul is.

   
kompabt - Tag | 27 hsz       Online status #167384   2011.10.25 00:28 GMT+1 óra  
sziasztok!

Java-ban mi a függvénypointer (c++) megfelelője? (Ilyen vezérelt menüt akarok írni.)

   
Sharp - Tag | 130 hsz       Online status #165985   2011.10.03 08:29 GMT+1 óra  
Egy objektum tudja magát serializálni.
Az lesz a gond szerintem, hogy az adott osztály tartalmaz olyan fieldet, ami nem implementálja a Serializable-t.

Kód:
class A implements Serializable {
   B b;
   C c;
}


Ebben az esetben NotSerializableException-t kapsz, ha B vagy C osztályok nem Serializálhatóak. A transient módosító megoldja a problémát, de akkor deserializációkor a te felelősséged lesz az adott fieldnek megfelelő érték megadása.

   
zeller - Törzstag | 464 hsz       Online status #165855   2011.10.02 06:49 GMT+1 óra  
Nem egeszen ertelek...
Ha felul akarod irni a default szerializalast, akkor a defaultWriteObject() ill a defaultReadObject() metodusokat kell megirnod az osztalyon. (Ezen felul adj meg egy serialversion UID-t, hogy a kompatibilitassal ne legyen majd bajod). A Serializable interface-t implementaltad? Mi a pontos stacktrace es a cause?
A szerializalas vezenylesere mindenkeppen hasznalj egy kulso osztalyt, bar elvileg nem lehetne gond, hogy sajat magan legyen az objektum kiirasa.

   
kompabt - Tag | 27 hsz       Online status #165843   2011.10.01 21:38 GMT+1 óra  
Sziasztok!

Megint lenne egy rövid kérdésem:

Egy objektum tudja önmagát szerializálni?

Tehát az osztályban lehet egy save() metódus, ami önmagát (this) leszerializálja, vagy ez hülyeség? (Én így implementálva a dolgokat java.io.NotSerializableException hibát kapok, és azt sejtem, hogy ezen okból.)
Ha ez így nem jó, akkor csináljak az adott osztályhoz egy serializer osztályt, és ott implementáljam a save metódust?

   
kompabt - Tag | 27 hsz       Online status #165261   2011.09.25 14:10 GMT+1 óra  
kösz srácok!

   
zeller - Törzstag | 464 hsz       Online status #165234   2011.09.25 11:45 GMT+1 óra  
Valoban...
Kód:
fr.value = new File();

kell.
Vagy set kellett volna az f = new file utan. Mindig ezek az lvaluek...

   
M4 - Tag | 187 hsz       Online status #165231   2011.09.25 11:26 GMT+1 óra  
Ez nem csinál semmit, először nullra állítod valuet, aztán létrehozol egy lokális File-t, amire nem lesz a setFile után hivatkozás.

Szerintem erre gondolt
Kód:
public class FileWrapper{
  File file;
}

setFile(FileWrapper fw){
  fw.file = new File(..);
}

   
zeller - Törzstag | 464 hsz       Online status #165209   2011.09.25 07:11 GMT+1 óra  
Javaban csak ertek szerint lehet parametert megadni.
Annyit csinalhatsz, hogy csinalsz egy refarg osztalyt es azt passzolgatod. Igy:
Kód:
class RefArg<T> {
       T value;
       RefArg(T val) {value = val;}
       T get() { return value;}
}
public void setFile(RefArg<File> fr ){
   File f = fr.get(); //jabvaban ugye metodushivas nem lehet lvalue...
   f = new File("newFile");
}

Es ekkor
Kód:
File f = null;
RefArg<File> fr = new RefArg<File>(f);
setFile(fr);


Vagy csak egyszeruen a metodus visszaadja a file-t. Egyebkent, ha a setFile metodusod tenyleg csak ennyit takar, akkor elgondolkozhatnal rajta, hogy nem sok ertelme van, inlinekent jobb megirni. (Persza, ha mas is van benne, akkor nyilvan nem feltetlenul)

Ezt a hozzászólást zeller módosította (2011.09.25 07:31 GMT+1 óra, ---)

   
kompabt - Tag | 27 hsz       Online status #165199   2011.09.24 23:54 GMT+1 óra  
Sziasztok!

Bocs a nagyon kezdő kérdésért, de fontos lenne.
Szóval hogy lehet java-ban referencia szerint átadni referenciát?
Azt akarom, hogy ha kívülről meghívom a setFile függvényt, akkor változtassa meg a File értékét.

Kód:
public void setFile( File f ){
   f = new File("newFile");
}


Ez így ugye rossz, mert az eredeti referencia lemásolódik, és a másolat fog megváltozni, nem az eredeti.

   
zeller - Törzstag | 464 hsz       Online status #164668   2011.09.20 20:17 GMT+1 óra  
Nested static osztalyok?
Elvileg semmi kulonos. Kulon class fileba fordulnak es direktben elerhetoek a nevukkel.

pl
Kód:
class Feri {
static class Lorant {}
}
...
//egyenertekuek
Lorant l = new Lorant();
Feri.Lorant fl = new Feri.Lorant();


Ez volt a kerdes?

   
DMG - Szerkesztő | 3172 hsz       Online status #164660   2011.09.20 19:59 GMT+1 óra  
Idézet
LugaidVandroiy :
Idézet
DMG :
Köszi!


Sikerült?



Majd fog. Egyenlőre nem tartok ott, mert bele kell tolnom a 1.x-es támogatás, elvben ma megvagyok vele, aztán küldök egy csomagot.

Csak azt nem tudom, hogy ha JAR file-ba tolom az egész engine-t akkor a static osztályokkal hogy boldogul utána az ezt felhasználó project?
-----------------------------------------
Dont Listen to the Naysayers
   
zeller - Törzstag | 464 hsz       Online status #164656   2011.09.20 19:43 GMT+1 óra  
LugaidVandroiy - Törzstag | 504 hsz       Online status #164651   2011.09.20 19:28 GMT+1 óra  
Idézet
DMG :
Köszi!


Sikerült?

   
kompabt - Tag | 27 hsz       Online status #164647   2011.09.20 19:13 GMT+1 óra  
Ok, értem kösz, de egyébként miért nem jó ötlet nullpointerException-t elkapni?

   
M4 - Tag | 187 hsz       Online status #164587   2011.09.20 12:13 GMT+1 óra  
Pl:
Kód:
paint(Paintable p, G g){
  if(p!=null)
    p.paint(g);
}

paint(gpm.projectile, g);
paint(gpm.explosion, g);

   
zeller - Törzstag | 464 hsz       Online status #164584   2011.09.20 11:36 GMT+1 óra  
Elso szabaly. NPE-t nem kapunk el, hanem null checket teszunk ele.
2. Ha a try blokk egy soran hiba tortenik, a blokk azt koveto sorai mar nem hivodnak meg.
ket megoldas van:
nullcheck minden paint hivas ele.
null object pattern hasznalata

   
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9]