NullPointerException

Tags:    java

Jeg har en klasse SpriteCache:
Fold kodeboks ind/udKode 

Jeg kalder så getSprite metoden i en andel klasse:
Fold kodeboks ind/udKode 


Her får jeg en NullPointerException i linjen: spriteCache.getSprite(spriteName)

Hvad er problemet?

Har desværre stadig ingen UP:(



En anden gang må du gerne poste hele dit stacktrace :)

Har du husket at oprette en instans af SpriteCache? Det kunne godt se ud til, at variablen spriteCache er null



Det her er et stacktrace ikk?
Exception in thread "main" java.lang.NullPointerException
at tankWars.Actor.paint(Actor.java:37)
at tankWars.TankWars.paintWorld(TankWars.java:71)
at tankWars.TankWars.game(TankWars.java:78)
at tankWars.TankWars.main(TankWars.java:92)

Vis jeg splitter spriteCache.getSprite(spriteName) op i flere linjer således:
Fold kodeboks ind/udKode 


er det den anden linje den siger fejlen er i, men jeg ved ikke om det har nogen betydnign.

spriteCache bliver først oprettet i klassen TankWars constructor:
Fold kodeboks ind/udKode 

der bliver oprettet en instans of TankWars i main metoden. Main metoden ligger også i TankWars.
Fold kodeboks ind/udKode 

i Actor objectet hvor metoden public void paint(Graphics2D) ligger bliver spriteCache initaliseret således:
Fold kodeboks ind/udKode 

TankWars.getSpriteCache() ser sådan her ud:
Fold kodeboks ind/udKode 


Så for mig ser det ud som om spriteCache indeholder et SpriteCache objekt...

her er hele koden til spillet (fylder ikke så meget endu):
Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 


Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 24.10.2008 19:53 af Bruger #13669
har selv ordent det :D
jeg initaliserede først spriteCache efter jeg brugte get sprite til at fortælle min actor hvilke billeder han skulle have.

Nu er jeg så stødt ind i et nyt problem... men jeg tror godt jeg kan løse det selv :D

.:Edit:.
Og nu fik jeg så også løst det... ;)



Indlæg senest redigeret d. 24.10.2008 22:27 af Bruger #13669
hvorfor bruger du ikke den typeparametriserede hashmap?
så kan du undgå (manuelt) at lave typecasts.

mvh
Troels



hvorfor bruger du ikke den typeparametriserede hashmap?
så kan du undgå (manuelt) at lave typecasts.

mvh
Troels


Fordi SpriteCache er næsten 100% kopieret fra en tutorial, og jeg ikke har tænkt på at lave det om endu. :D

Men tak fordi du mindede mig om det ;)



t