Code:
import java.util.Random;
import java.util.Scanner;
import de.htwberlin.prog1.wise19.superhero.model.Superhero;
import de.htwberlin.prog1.wise19.superhero.model.Superpower;
/**
* @author vemaj
*
*/
public class SuperheroApp {
static Superhero[] team;
private static Scanner scanner = new Scanner(System.in);
/**
* @param args mainklasse
*/
public static void main(String[] args) {
showMenu();
int choice = readUserInput();
handle(choice);
System.out.println("====================");
}
/**
*
* @return
*/
private static int readUserInput() {
System.out.print("\nBitte, geben Sie die Nummer des gewaehlten Menueeintrags ein:\t");
int choiceInternal = scanner.nextInt();
return choiceInternal;
}
/**
*
* @param choice
*/
private static void handle(int choice) {
switch (choice) {
case 1:
createSuperhero1();
break;
case 2:
dateneinesSuperheldenausgeben();
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
default: {
System.out.println("Ungueltige Eingabe. Bitte ueberpruefen Sie Ihre Eingabe");
showMenu();
}
break;
}
}
/**
*
*/
private static void showMenu() {
String menuItems[] = { "", "(1)\t Superheld anlegen", "(2)\t Daten eines Superhelden ausgeben",
"(3)\t Daten aller Superhelden ausgeben", "(4)\t Superheld aus dem Team nehmen",
"(5)\t Ein Abenteuer bestreiten", "(6)\t Beenden" };
System.out.println("\nSuperheroes 1.0\n");
for (int i = 1; i < menuItems.length; i++) {
System.out.println(menuItems[i]);
}
}
private static Superhero[] createSuperhero1(){
Superhero[]team = new Superhero[5];
if(Superhero.anzahlHeroes <4) {
do {
//Superpower erstellen
Superpower super1 = new Superpower("Eispickel");
Superpower super2 = new Superpower("Feurball");
Superpower super3 = new Superpower("Blattschwert");
Superpower super4 = new Superpower("Wasserstoß");
Superpower super5 = new Superpower("Dunkelnebel");
Superpower super6 = new Superpower("Lichtsstrahl");
//Superpowerattribute setzen
super1.setactionDescription("schießt Eisplitter auf den Gegner");
super1.setid();
super2.setactionDescription("schießt einen Feuerball auf den Gegner");
super2.setid();
super3.setactionDescription("greift den Gegner mit einem Blattschwert an");
super3.setid();
super4.setactionDescription("Durchstößt den Gener mit Wasser");
super4.setid();
super5.setactionDescription("Umhüllt den Gegner mit Nebel");
super5.setid();
super6.setactionDescription("Durchdringt den Gegner mit einem Lichtstrahl");
super6.setid();
//Abfrage nach Namen
System.out.println("\nWelchen Namen soll der " +(Superhero.anzahlHeroes+1) + ". Held haben?");
//Scannerobjekt erstellen
Scanner scanner2 = new Scanner(System.in);
//Scannervariable erstellen
String name2 = scanner2.nextLine();
//Scanner schließen1
//Held erstellen
Superhero hero = new Superhero(name2);
hero.setID();
hero.setHealthpointsCurrent(50);
hero.setHealthpointsMax(50);
hero.setExperiencePoints(0);
hero.setReadytofight(true);
hero.setInFight(false);
hero.setAlive(true);
//Zufällige verteilung der Fähigkeiten
Random random1 = new Random();
int x = random1.nextInt(4);
if (x == 0) {
hero.setSuperpower1(super6);
hero.setSuperpower2(super5);
hero.setSuperpower3(super3);
}
if (x==1) {
hero.setSuperpower1(super5);
hero.setSuperpower2(super4);
hero.setSuperpower3(super2);
}
if (x==2) {
hero.setSuperpower1(super5);
hero.setSuperpower2(super6);
hero.setSuperpower3(super1);
}
if (x == 3) {
hero.setSuperpower1(super2);
hero.setSuperpower2(super1);
hero.setSuperpower3(super4);
}
// Held in Array speichern
team[Superhero.anzahlHeroes -1] = hero;
System.out.println("Der " +(Superhero.anzahlHeroes)+". Hero heißt " + hero.getName() +"\n") ;
System.out.println("Deine Fähigkeiten sind: \n1." + hero.getSuperpower1().getName() + "\n2." + hero.getSuperpower2().getName() +"\n3." + hero.getSuperpower3().getName());
}
// stop für die Heldenerstellung
while(Superhero.anzahlHeroes <5);
showMenu();
int choice = readUserInput();
handle(choice);
System.out.println("====================");
}
else {
System.out.println("Maximale Anzahl an Helden erreicht");
showMenu();
int choice = readUserInput();
handle(choice);
System.out.println("====================");
}
return team;
}
public static Superhero[] getTeam() {
return team;
}
private static void dateneinesSuperheldenausgeben() {
System.out.println(team[0].getName());
}
}
hallo alle zusammen ich hab ein großes Problem in der Methode createSuperhero1 hab ich ein Array mit mit der Konsoleneingabe erstellt und in der Methode dateneinesSuperheldenausgeben hab ich dann versucht die Daten des Arrays auszugeben aber dann kommt nur die fehlermeldung
Exception in thread "main" java.lang.NullPointerException
at de.htwberlin.prog1.wise19.superhero.app.SuperheroApp.dateneinesSuperheldenausgeben(SuperheroApp.java:214)
at de.htwberlin.prog1.wise19.superhero.app.SuperheroApp.handle(SuperheroApp.java:57)
at de.htwberlin.prog1.wise19.superhero.app.SuperheroApp.createSuperhero1(SuperheroApp.java:189)
at de.htwberlin.prog1.wise19.superhero.app.SuperheroApp.handle(SuperheroApp.java:54)
at de.htwberlin.prog1.wise19.superhero.app.SuperheroApp.main(SuperheroApp.java:31)