Java 尝试打印对象的值时出现nullexception
因此,我在这里记录厨师姓名、城市和价值,并将其存储在obj中,并试图将这些价值存储到一个文件中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
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;iobj[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 changefor(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必须执行。非常感谢,非常感谢!!!