Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试打印对象的值时出现nullexception_Java_Io - Fatal编程技术网

Java 尝试打印对象的值时出现nullexception

Java 尝试打印对象的值时出现nullexception,java,io,Java,Io,因此,我在这里记录厨师姓名、城市和价值,并将其存储在obj中,并试图将这些价值存储到一个文件中 Package yummy; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; class Chef { int val

因此,我在这里记录厨师姓名、城市和价值,并将其存储在obj中,并试图将这些价值存储到一个文件中

Package yummy;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

class Chef
 {
   int value;
   String name;
   String city;   
 }

public class Yummy21 {    
 static Chef[] obj=new Chef[2];
 static Scanner input=new Scanner(System.in);    

public static void main(String args[])
{   
   Chef[] obj=init(); 
   //public static Chef init();
    PrintWriter     printer=createFile("C:\\Users\\Creative_Cimmons\\Documents\\content.docx");

    for(Chef exam : obj)
    {
      createOutput(printer,exam); 
    } 
}

public static Chef[] init()
{
   for(int i=0;i<2;i++)
   {
    obj[i]=new Chef();
    System.out.println("for the object "+i+" enter the name ");
    obj[i].name=input.next();
    System.out.println("for the object "+i+" enter the city ");
    obj[i].city=input.next();
    System.out.println("for the object "+i+" enter the value ");
    obj[i].value=input.nextInt();
   }
return obj;
}
 public static PrintWriter createFile(String a)
 { 
     try
     { 
         File location=new File(a);
         PrintWriter printer=new PrintWriter(new BufferedWriter(new         FileWriter(location)));
        return printer;
     }       
     catch(IOException e)
     {
         System.out.println("I/O exception occured");
     }  
     return null;
 }

public static void createOutput(PrintWriter print,Chef exam )
{
    String holder=exam.name+" "+exam.city+" "+exam.value;   
    print.println(holder);               
}               
}
包装美味;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.util.Scanner;
班主任
{
int值;
字符串名;
字符串城市;
}
公共类Yummy21{
静态厨师[]obj=新厨师[2];
静态扫描仪输入=新扫描仪(System.in);
公共静态void main(字符串参数[])
{   
Chef[]obj=init();
//publicstaticchef init();
PrintWriter printer=createFile(“C:\\Users\\Creative\u Cimmons\\Documents\\content.docx”);
适用于(厨师考试:obj)
{
创建输出(打印机、考试);
} 
}
publicstaticchef[]init()
{

for(int i=0;i
obj[i]
为空。将其初始化为
Chef
实例。您刚刚创建了一个数组,其中将包含
Chef
类型的对象。但是,您实际上还没有创建
Chef
的任何实例。因此,在循环中创建一个
Chef
的新实例,稍后再分配它的字段

for(int i=0;i<2;i++)
{
    obj[i] = new Chef();
    System.out.println("for the object "+i+" enter the name ");
    obj[i].name=input.next();
    System.out.println("for the object "+i+" enter the city ");
    obj[i].city=input.next();
    System.out.println("for the object "+i+" enter the value ");
    obj[i].value=input.nextInt();
}

for(int i=0;itry change
for(int i=0;i请在线程“main”java.lang.NullPointerException的yummy.Yummy21.init(Yummy21.java:72)的yummy.Yummy21.main(Yummy21.java:45)中放置异常Java结果:1抱歉,即使我改为2,它仍然显示异常!!!@Kamil09875对于对象0输入名称eff对于对象0输入城市dfdf对于对象0输入值45对于对象1输入名称FGFGFG对于对象1输入值67 i/O异常发生在在yummy.Yummy21.main(Yummy21.java:57)中读取yummy.Yummy21.createOutput(Yummy21.java:109)中的“main”java.lang.NullPointerException(main)java.lang.NullPointerException(总时间:17秒)在从
init()抛出之前,另一行中的
NullPointerException
似乎是相同的
method现在是
createOutput
methody当您调用方法createOutput(main中的第57行)时,以及当您着手实现它时(第109行),它会出现相同的null异常@Octopus如果您已经按照我在回答中所说的更正了代码,它应该返回一个
Chef
实例数组,那么唯一可能导致
NPE
的候选对象是
print
Printer reference only。请检查它是否按照您告诉@Octopus的那样更改了
null
,我是java编程新手,您能告诉我chec是如何更改的吗k必须执行。非常感谢,非常感谢!!!