Java super() constructor multiple parameter

JavaBeginner

Ensign
Registriert
Juli 2015
Beiträge
142
Hallo, da ich nun schon seid 3 Tagen a dem Problem verzweifle entschloss ich mich hier nachzufragen, da ich bereits in der Vergangenheit hiflreiche Antwortne bekommen habe (Danke dafür!).
Mein momentanes Problem siehr folgendermaßen aus: Ich habe einen super constructor welcher nur 1 parameter zulässt (aufgrund einer api Abhängigkeit), möchte jedoch in diesem constructor mit diversen HashMaps und Listen arbeiten. Ich hatte die Idee das ich die Parameter eventuell mit einem weiten Constructor an den eigentlich übergeben kann...bin bisher aber auf keinen grünen Zweig mit dieser Idee gekommen. Nun meine Frage, wie kann ich diese gewissen parameter in dem constructor verwenden?
 
Ist die Super-Klasse von dir geschrieben oder aus einer Bibliothek? Wenn sie von dir ist, könntest du ja einfach den Konstruktor der Super-Klasse dahingehend anpassen, dass diese Parameter annimmt.
 
Toms schrieb:
Ist die Super-Klasse von dir geschrieben oder aus einer Bibliothek? Wenn sie von dir ist, könntest du ja einfach den Konstruktor der Super-Klasse dahingehend anpassen, dass diese Parameter annimmt.


Ist leider aus einer Bibliothek.
 
Zuletzt bearbeitet:
Würde mir jetzt spontan ohne näheres über die Fremdbibliothek zu wissen nur ein Wrapper einfallen, sprich eine Klasse, die deine X Paramter nimmt und sie so konvertiert, dass sie zum Aufruf der Bibliothek passen.

Beschreib doch am Besten näher was du machen möchtest und um welche Bibliothek und Klasse es genau geht. Dann sind wir nicht so abstrakt.
 
BlackVip3r schrieb:
Beschreib doch am Besten näher was du machen möchtest und um welche Bibliothek und Klasse es genau geht. Dann sind wir nicht so abstrakt.

Nun, ich verwende die Spigot API um für ein Spiel (Minecraft) ein Plugin für einen bekannten zu schreiben. Um eine einfachere Modifikation von Monstern in deisem Spiel zu ermögliche wollte ich an diesen constructor diverse weitere Parameter übergeben.
e484513f36.png

So hatte ich es mit vorgestellt, es dürfen aber nur folgende Parameter übegeben werden.
1b5efea3da.png
 
soares schrieb:
Welche Fehlermeldung wird angezeigt?

Beim ursprünglichen, mit der Übergabe der Parameter erhalte ich folgendes:
HTML:
 java.lang.NoSuchMethodException: me.doodle.custommobs.CustomZombie.<init>(net.minecraft.server.v1_10_R1.World)
 	at java.lang.Class.getConstructor0(Class.java:3082)
 	at java.lang.Class.getConstructor(Class.java:1825)
 	at net.minecraft.server.v1_10_R1.EntityTypes.a(SourceFile:234)
 	at net.minecraft.server.v1_10_R1.ChunkRegionLoader.a(ChunkRegionLoader.java:502)
 	at net.minecraft.server.v1_10_R1.ChunkRegionLoader.a(ChunkRegionLoader.java:443)
 	at net.minecraft.server.v1_10_R1.ChunkRegionLoader.loadEntities(ChunkRegionLoader.java:397)
 	at org.bukkit.craftbukkit.v1_10_R1.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:42)
 	at org.bukkit.craftbukkit.v1_10_R1.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:1)
 	at org.bukkit.craftbukkit.v1_10_R1.util.AsynchronousExecutor$Task.finish(AsynchronousExecutor.java:188)
 	at org.bukkit.craftbukkit.v1_10_R1.util.AsynchronousExecutor.finishActive(AsynchronousExecutor.java:347)
 	at org.bukkit.craftbukkit.v1_10_R1.chunkio.ChunkIOExecutor.tick(ChunkIOExecutor.java:34)
 	at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:752)
 	at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399)
 	at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672)
 	at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571)
 	at java.lang.Thread.run(Thread.java:745)
 Skipping Entity with id Zombie
 
Du instanziierst das Objekt also nicht immer selbst. Wenn es Dir nur darum geht, eigene Objekte mit den zusätzlichen Parametern per Konstruktur zu erstellen, füge einfach einen weiteren Konstruktur zusätzlich zu dem benötigten hinzu.
 
Da stimme ich soares zu. Um den Default Konstruktor wirst du in diesem Fall nicht herum kommen. Finde dafür vernünftige Default Werte und füge einen zweiten Konstruktor mit deinen Attributen hinzu.
 
Zuletzt bearbeitet: (Rechtschreibfehler)
Zurück
Oben