Hallo liebe Leute,
mein erster Post und auch schon direkt eine Frage.
Und zwar bin ich im moment ein klein wenig mit den Java-Basics am rumexperimentieren, und ich stehe momentan vor einem problem.
Und zwar habe ich im Verlauf meines Quelltextes die Variable egoeins (egozwei, egodrei,...), aus denen ich etwas schließen will, wenn die Variablen leer sind, dafür habe ich dann angenommen, egoeins (egozwei etc.) sei "null". Allerdings, wenn ich meinen Code so anwende, wie ich ihn hierunter posten werde, erhalte ich beim ausführen des Projekts eine Fehlermeldung.
Wenn ich nun also an dem Punkt bin, an dem die Nummer zwischen 1 und 10 (egoeins-egozehn) abgefragt wird und ich die 4 (die nicht definiert ist, also "null" sein müsste), erhalte ich folgende Meldung (der Code, der die Problemstelle darstellt ist als comment im Quelltext ganz unten angehangen):
NullPointerException:
null
mfg fuerchterBR
//EDIT:
Und ja, falls die Frage kommen sollte, ich habe gegoogelt, aber die Ergebnisse waren entweder so formuliert, dass ich sie nicht verstehen konnte, oder sie behandelten nicht das richtige Problem.
//EDIT2:
Falls es helfen sollte, ich habe auch bereits probiert
zu schreiben, selbes Problem.
mein erster Post und auch schon direkt eine Frage.
Und zwar bin ich im moment ein klein wenig mit den Java-Basics am rumexperimentieren, und ich stehe momentan vor einem problem.
Und zwar habe ich im Verlauf meines Quelltextes die Variable egoeins (egozwei, egodrei,...), aus denen ich etwas schließen will, wenn die Variablen leer sind, dafür habe ich dann angenommen, egoeins (egozwei etc.) sei "null". Allerdings, wenn ich meinen Code so anwende, wie ich ihn hierunter posten werde, erhalte ich beim ausführen des Projekts eine Fehlermeldung.
Java:
import java.io.*;
/**
* Write a description of class Text here.
*
* @author fuerchterBR
* @version 09-15-09 v0.001
*/
public class Text
{
// instance variables - replace the example below with your own
public int leben;
public String eingabe;
public String name;
public String erzaehler;
public String antwortja;
public String antwortnein;
public String egoeins;
public String egozwei;
public String egodrei;
public String egovier;
public String egofuenf;
public String egosechs;
public String egosieben;
public String egoacht;
public String egoneun;
public String egozehn;
public String antworteins;
public String antwortzwei;
public String antwortdrei;
public String antwortvier;
public String antwortfuenf;
public String antwortsechs;
public String antwortsieben;
public String antwortacht;
public String antwortneun;
public String antwortzehn;
/**
* Constructor for objects of class Text
*/
public Text()
{
startespiel();
}
//methoden
//methode um das Spiel zu starten.
public void startespiel(){
leben=100;
erzaehler="Sie wachen auf und sehen eine Kerze, die neben ihrem Bett steht.";
erzaehlen();
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
erzaehler="/Wollen sie sie auspusten?";
erzaehlen();
antwortja="Sie pusten die Kerze aus und schlafen erneut ein. Das Spiel wird neu gestartet.";
antwortnein="/Geben sie ihren Namen ein.";
abfragejanein();
abfragename();
erzaehler="Herzlich Willkommen in diesem Textadventure, "+name;
erzaehlen();
erzaehler="Lasst uns die Geschichte weiter verfolgen!";
erzaehlen();
erzaehler="Sie stehen auf und bemerken die bäuerliche, aber auch mittelalterliche Dekoration, als ein Ritter das Zimmer betritt.";
erzaehlen();
erzaehler="'Steh auf und beweg dich, "+name;
erzaehlen2();
erzaehler="du dummer Alter Bauer!'";
erzaehlen();
erzaehler="/Antworten sie dem Ritter!";
erzaehlen();
erzaehler="Antwortmöglichkeiten:";
erzaehlen2();
erzaehler="____________________";
erzaehlen2();
erzaehler="1) Jawohl, mein Herr, ich bin bereit erneut zu dienen!";
erzaehlen2();
erzaehler="2) Jaja, ich komme ja schon, was mache ich hier überhaupt, und wieso werde ich als Bauer beschimpft?";
erzaehlen2();
erzaehler="3) Niemals, ich bleibe liegen, ich werde nicht für ein solch eitles Königreich dienen!";
erzaehlen2();
egoeins="Jawohl, mein Herr, ich bin bereit erneut zu dienen!";
egozwei="Jaja, ich komme ja schon, was mache ich hier überhaupt, und wieso werde ich als Bauer beschimpft?";
egodrei="Niemals, ich bleibe liegen, ich werde nicht für ein solch eitles Königreich dienen!";
antworteins="'Komm mit mir!', sagt der Ritter.";
antwortzwei="'Ich beschimpfe dich als Bauer, weil du einer bist, und jetzt komm!', sagt der Ritter.";
antwortdrei="'Na gut, dann bleibst du halt liegen, dem König wird das garantiert nicht gefallen, wenn ich es ihm berichte!', sagt der Ritter.";
abfrageeinszehn();
}
//erzaehlen-methode, die die Variable erzaehler in der console wiedergibt.
public void erzaehlen(){
System.out.println(""+erzaehler);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
}
//erzaehlen-methode, die die Variable erzaehler in der console wiedergibt. (Ohne Pause)
public void erzaehlen2(){
System.out.println(""+erzaehler);
}
//ja/nein-abfrage mit vorher zu definierender Antwort.
public void abfragejanein(){
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
eingabe = in.readLine();
}
catch(IOException ex ){
System.out.println( ex.getMessage() );
}
if (eingabe.equals("Ja")){
System.out.println(""+antwortja);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
startespiel();
}
else if (eingabe.equals("Nein")){
System.out.println(""+antwortnein);
}
else{
System.out.println("Falsche Eingabe!");
abfragejanein();
}
}
//abfrage die eine beliebige Eingabe erfordert.
public void abfrage(){
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
eingabe = in.readLine();
}
catch(IOException ex ){
System.out.println( ex.getMessage() );
}
}
//abfrage die den Namen erfordert.
public void abfragename(){
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
name = in.readLine();
}
catch(IOException ex ){
System.out.println( ex.getMessage() );
}
}
//abfrage die eine Antwort von 1-10 erwartet
public void abfrageeinszehn(){
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
eingabe = in.readLine();
}
catch(IOException ex ){
System.out.println( ex.getMessage() );
}
if (eingabe.equals("1")){
System.out.println("-"+egoeins);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antworteins);
}
else if (eingabe.equals("2")){
System.out.println("-"+egozwei);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortzwei);
}
else if (eingabe.equals("3")){
System.out.println("-"+egodrei);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortdrei);
}
else if (eingabe.equals("4")){
System.out.println("-"+egovier);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortvier);
}
else if (eingabe.equals("5")){
System.out.println("-"+egofuenf);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortfuenf);
}
else if (eingabe.equals("6")){
System.out.println("-"+egosechs);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortsechs);
}
else if (eingabe.equals("7")){
System.out.println("-"+egosieben);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortsieben);
}
else if (eingabe.equals("8")){
System.out.println("-"+egoacht);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortacht);
}
else if (eingabe.equals("9")){
System.out.println("-"+egoneun);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortneun);
}
else if (eingabe.equals("10")){
System.out.println("-"+egozehn);
try{
Thread.sleep(4000);
}
catch (InterruptedException e){
}
System.out.println(""+antwortzehn);
}
else{
System.out.println("Falsche Eingabe!");
abfrageeinszehn();
}
/** if (egovier.equals("null")){
System.out.println("Falsche Eingabe!");
abfrageeinszehn();
} */
}
}
Wenn ich nun also an dem Punkt bin, an dem die Nummer zwischen 1 und 10 (egoeins-egozehn) abgefragt wird und ich die 4 (die nicht definiert ist, also "null" sein müsste), erhalte ich folgende Meldung (der Code, der die Problemstelle darstellt ist als comment im Quelltext ganz unten angehangen):
NullPointerException:
null
mfg fuerchterBR
//EDIT:
Und ja, falls die Frage kommen sollte, ich habe gegoogelt, aber die Ergebnisse waren entweder so formuliert, dass ich sie nicht verstehen konnte, oder sie behandelten nicht das richtige Problem.
//EDIT2:
Falls es helfen sollte, ich habe auch bereits probiert
Java:
if (egovier.equals(""))
Zuletzt bearbeitet: