|
|
Valoban...
Kód: fr.value = new File();
kell.
Vagy set kellett volna az f = new file utan. Mindig ezek az lvaluek...
|
|
|
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(..);
}
|
|
|
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, ---)
|
|
|
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.
|
|
|
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?
|
|
|
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
|
|
|
|
Idézet DMG :
Köszi! 
Sikerült?
|
|
|
Ok, értem kösz, de egyébként miért nem jó ötlet nullpointerException-t elkapni?
|
|
|
Pl:
Kód: paint(Paintable p, G g){
if(p!=null)
p.paint(g);
}
paint(gpm.projectile, g);
paint(gpm.explosion, g);
|
|
|
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
|
|
|
Sziasztok!
A következő képpen akarok kirazoltatni objektumokat:
Kód: try{
gpm.players[0].tank.paint(g);
gpm.players[1].tank.paint(g);
gpm.projectile.paint(g);
gpm.explosion.paint(g);
}
catch(NullPointerException ex){
}
problémám: ha pl. a projectile nem létezik (null), hiba dobódik, és az explosion (ami viszont létezik) már nem rajzolódik ki. Az lenne a kérdésem, hogy mi a szép megoldás? Minden egyes kirajzolást try-catch blokkban tenni? Van "szebb" megoldás?
|
|
|
Köszi!
-----------------------------------------
Dont Listen to the Naysayers
|
|
|
Jobb egérgomb a projekten -> Export -> kiválasztod a jar fájlt, ott meg az src könyvtárat. Kimented valahova.
Jobb egérgomb a másik projekten -> Properties -> Java build path oldalt -> Add external JARs és meg is vagy.
|
|
|
Gondoltam ezt inkább ide, mint az androidos topicba.
Szóval az a kérdés, hogy ha van egy projectem Eclipse-ben, azt hogy tudom én valami féle importálható csomaggá alakítani, hogy egy másik project-ben tudjam használni az osztályait? Meg lehet ezt egyáltalán csinálni?
-----------------------------------------
Dont Listen to the Naysayers
|
|
|
Köszi
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
|
Hát nem totál nulla tudással mert vannak már kisebb tapasztalataim c# ben szóval az alap fogalmakat már vágom  Amúgy Eclipse ből melyiket töltsem le innen http://www.eclipse.org/downloads/ ?  Netbeans el könnyű volt mert mindet felajánlotta egyszerre de itt most nem tom mi kell nekem :$
Bár az angol tudásom azt súgja a Classic jó lesz nekem.
Amúgy szerintem nem olyan rossz ez a 24 órás könyv  Amúgy csalóka a cím mert minden leckéhez le kell ülni egy 2-3 órára ,hogy tényleg begyakorolja a dolgokat az ember. Ha meg már belevágtam akkor végigolvasom ne mennyen kárba az ára, aztán meg meglesem amiket adtál
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Az egy szar... Szerintem. Bar ha total semmi tudassal ultel le, akkor biztos er valamit.
En az SCJP guideot ajanlom, meg a java2s.com -ot, meg a google-t
|
|
|
Köszi most épp a 24 óra alattos könyvet nyüstölöm de azért elmentettem őket könyvjelzőnek
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
|
Igazad van , hozzá is írtam de a helyzet mit sem változott :/
EDIT: Háháháá rágyüttem, thrall közel jártál már de nem this.visible = true kellet hanem setVisible(true)
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Btw a mainbe nem artana egy new FrameTeszt(); ... anelkul a kod semmit sem csinal.
|
|
|
Annyit akarok elérni ,hogy legyen egy keret üres belsővel  D
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Idézet Marclee :
Nah megint gyakorolgatom a javat és problembe ütköztem :/ Most próbálgatom tutorialokkal a keret készítést de hiába futtatom le a programot NetBeans ben ugyanúgy a lenti kis konzol féleségben mutatja az "eredményt", ha meg megcsinálom futtatható fájlba el se indul xD
Kód: package frameteszt;
import javax.swing.*;
public class FrameTeszt extends JFrame {
public static void main(String[] args) {
}
public FrameTeszt() {
setTitle("teszt");
}
}
Nem értem mit szeretnél, nem kéne egy this.visible = true.
Esetleg beleteszel egy JPanelt, hogy legyen is valami az ablakban?
|
|
|
Nah megint gyakorolgatom a javat és problembe ütköztem :/ Most próbálgatom tutorialokkal a keret készítést de hiába futtatom le a programot NetBeans ben ugyanúgy a lenti kis konzol féleségben mutatja az "eredményt", ha meg megcsinálom futtatható fájlba el se indul xD
Kód: package frameteszt;
import javax.swing.*;
public class FrameTeszt extends JFrame {
public static void main(String[] args) {
}
public FrameTeszt() {
setTitle("teszt");
}
}
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
k meg vok győzve
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Scanner in = new Scanner(System.in);
name = in.nextLine();
ez sem sokkal több
|
|
|
Ez most komoly ilyen bonyolult?? O.o c# ben ez 2 sor
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
|
Annyit ,hogy amikor fut a program a használó adhassa meg az "a" változó értékét , ennyi
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Idézet Marclee :
[...]
Egyszerűn csak azt akarom ,hogy ne kelljen megadnom egy változó értékét hanem minden programfuttatáskor én adhassam meg az értéket.
[...]
Most akkor mit is akarsz?
|
|
|
Pls segítsetek nemtok rájönni egy tök alap dologra :$
Egyszerűn csak azt akarom ,hogy ne kelljen megadnom egy változó értékét hanem minden programfuttatáskor én adhassam meg az értéket.
c ben tudom ,hogy a = System.Console.Read();
de java ban ha azt próbálom ,hogy a = System.in.read(); akkor hibát ír  Hogy kell?
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
|
Üdv!
A JavaScript az Script nyelvnek számít, vagy hozzátartozik a Java programozási nyelvhez, vagy az egy külön programozási nyelv, és semmi köze nincsen a Javához?
[thinking]Nem tudsz elrontani egy játékot, ha nem is fejlesztesz.[/thinking]
4Bit Security Admirális-Generális
|
|
|
Az utolsót töltöttem le amelyik mind1iket egybe fogja gondoltam az a leghasznosabb.
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Szuper, de megint nem írtad le jól mit használsz. A Netbeansnak sok verziója van. Nem az a lényeg, hogy 7.0, hanem hogy melyik változatát. Ezt az oldalt megnyitva van pár verzió:
http://netbeans.org/downloads/index.html
Na, lényeg, hogy megy :-)
|
|
|
Nah ez kész XP-n persze kapásból működik  D
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Új projekt létrehozásakor de ezt már az első kommentben is írtam  A Netbeansem 7.0-t töltöttem le.
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Azért jobban is leírhatnád mit csinálsz valójában, és mikor jön elő ez a hiba. Netbeans indításkor? Új projekt létrehozásakor? Egy létező projekt betöltésekor? Egyáltalán melyik fajta netbeans-t töltötted le?
Én sokszor használtam már netbeanst, de ezt a hibát nem láttam még.
Javaslom próbálkozz eclipse-el esetleg. Úgyis érdemes megismerni mindkettőt.
|
|
|
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Ok, megvan , csak én voltam a hülye mert leakartam tudni annyiból az egészet ,hogy windows keresés aztán rájöttem ,hogy rosszat nyitott meg , mindennek csak a lustaságom volt az oka :$ Megcsináltam a változót de még mindig nem találja a NetBeans
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Nekem még sohasem volt ilyen hiba, hogy nem tudok felvenni egy környezeti változót. Arra tudok csak gondolni, hogy nem adminisztrátorként használálod és nem engedi felvenni.
|
|
|
De, miért? nem úgy kéne??
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Esetleg nem adminként próbálod?
|
|
|
Megtaláltam de nem engedi ,hogy új rendszer változót hozzak létre
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Windows 7-en: Vezérlőpult->Rendszer és biztonság->Rendszer->Speciális rendszerbeállítások->Környezeti változók
Majd ott Új rendszerváltozót kell létrehozni. Nekem ez van:
Változó neve: JAVA_HOME
Változó értéke: c:\Program Files\Java\jdk1.6.0_23\
Értelem szerűen az C:\...rész a felinstallált jdk-d helyére mutat.
Majd OK gomb és kész.
Ezután indítsd újra a netbeans-t és kész.
|
|
|
De hol tom beállítani??  Életemben először próbálok meg Javával dolgozni :$
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric
http://geeksworld.hu/
|
|
|
Valószínű, hogy a JAVA_HOME környezeti változó nincs beállítva. Annak a JDK könyvtárára kell mutatnia.
|
|