在方法中找不到符号变量
Cannot find symbol variable in method
我正在 JAVA 学习编程。
我创建了一个程序来成功地在 MS word 中打印日期和时间,但现在我想通过不同的函数在我的 MS word 文档中打印字符串。我只能从 main 打印它们。
这是我的程序。
import java.util.*;
import java.io.*;
import org.apache.poi.xwpf.usermodel.*;
public class bill
{
public static void main(String[] args)throws Exception
{
//Blank Document
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream("createparagraph.docx");
//create Paragraph
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
bill date1=new bill();
String day1=date1.date();
run.setText(day1)
document.write(out);
out.close();
}
public String date()
{
int day, month, year;
int second, minute, hour;
GregorianCalendar date = new GregorianCalendar();
day = date.get(Calendar.DAY_OF_MONTH);
month = date.get(Calendar.MONTH);
year = date.get(Calendar.YEAR);
second = date.get(Calendar.SECOND);
minute = date.get(Calendar.MINUTE);
hour = date.get(Calendar.HOUR);
String day1= String.valueOf(day);
String month1= String.valueOf(month);
String year1= String.valueOf(year);
String second1= String.valueOf(second);
String minute1= String.valueOf(minute);
String hour1= String.valueOf(hour);
run.setText(day1); //here is error *
return day1;
}
}
如您所见,当我在我的 date()
函数中使用 run.setText(day1);
时,出现语法错误:
cannot find symbol variable run.
我是新手,抱歉我用错了英语或惯例。
请帮我从不同的功能中使用它在 MS word 中打印数据。
如果你们 post 一个更正的程序,那么我将非常感激。
编辑
我这样做了,但现在 ms word 上没有打印任何内容
import java.util.*;
import java.io.*;
import org.apache.poi.xwpf.usermodel.*;
public class bill
{
public static void main(String[] args)throws Exception
{
//Blank Document
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream("createparagraph.docx");
bill date1=new bill();
String day1=date1.date();
document.write(out);
out.close();
}
public String date()
{
int day, month, year;
int second, minute, hour;
GregorianCalendar date = new GregorianCalendar();
day = date.get(Calendar.DAY_OF_MONTH);
month = date.get(Calendar.MONTH);
year = date.get(Calendar.YEAR);
second = date.get(Calendar.SECOND);
minute = date.get(Calendar.MINUTE);
hour = date.get(Calendar.HOUR);
String day1= String.valueOf(day);
String month1= String.valueOf(month);
String year1= String.valueOf(year);
String second1= String.valueOf(second);
String minute1= String.valueOf(minute);
String hour1= String.valueOf(hour);
XWPFDocument document= new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
run.setText(day1+"/"+month1+"/"+year1+" "+second+":"+minute1+":"+hour1);
return day1;
}
}
在您的第一个示例中,您收到语法错误,因为您的 "run" 变量不在您调用它的同一范围内。方法中的变量只能由同一组 { } 中的其他代码使用或 "seen"。
因此,例如这样的 将不起作用 :
public static void main(String[] args) {
int name = "Sally";
sayHi();
}
public void sayHi(){
System.out.println("Hi " + name);
}
sayHi 方法无法知道名称是什么。不过,您可以将其作为参数传递。
您的第二个示例不起作用,因为您在获得日期后没有做任何事情。您无需先将日期添加到文档中即可立即编写文档。此外,您只返回当天,而不是整个日期。
我已经编写了一个快速的小程序,应该可以满足您的要求:
public class Bill {
public static void writeDate(XWPFDocument document) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
String date = sdf.format(new Date());
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText(date);
}
public static void main(String[] args) throws Exception {
XWPFDocument document = new XWPFDocument();
writeDate(document);
FileOutputStream out = new FileOutputStream("createparagraph.docx");
document.write(out);
out.close();
}
}
一些事情。
我冒昧地使用了一个 Date() 对象,尽管你所做的是可行的。
按照惯例,我们在 Java 中将 class 个名字大写。
即
public class bill {
应该是
public class Bill {
按照惯例,方法名称应简洁地描述其用途。您的 date() 方法名称并没有说明正在发生的事情。
如果其中任何一个没有意义,请告诉我。
我正在 JAVA 学习编程。
我创建了一个程序来成功地在 MS word 中打印日期和时间,但现在我想通过不同的函数在我的 MS word 文档中打印字符串。我只能从 main 打印它们。
这是我的程序。
import java.util.*;
import java.io.*;
import org.apache.poi.xwpf.usermodel.*;
public class bill
{
public static void main(String[] args)throws Exception
{
//Blank Document
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream("createparagraph.docx");
//create Paragraph
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
bill date1=new bill();
String day1=date1.date();
run.setText(day1)
document.write(out);
out.close();
}
public String date()
{
int day, month, year;
int second, minute, hour;
GregorianCalendar date = new GregorianCalendar();
day = date.get(Calendar.DAY_OF_MONTH);
month = date.get(Calendar.MONTH);
year = date.get(Calendar.YEAR);
second = date.get(Calendar.SECOND);
minute = date.get(Calendar.MINUTE);
hour = date.get(Calendar.HOUR);
String day1= String.valueOf(day);
String month1= String.valueOf(month);
String year1= String.valueOf(year);
String second1= String.valueOf(second);
String minute1= String.valueOf(minute);
String hour1= String.valueOf(hour);
run.setText(day1); //here is error *
return day1;
}
}
如您所见,当我在我的 date()
函数中使用 run.setText(day1);
时,出现语法错误:
cannot find symbol variable run.
我是新手,抱歉我用错了英语或惯例。
请帮我从不同的功能中使用它在 MS word 中打印数据。
如果你们 post 一个更正的程序,那么我将非常感激。
编辑 我这样做了,但现在 ms word 上没有打印任何内容
import java.util.*;
import java.io.*;
import org.apache.poi.xwpf.usermodel.*;
public class bill
{
public static void main(String[] args)throws Exception
{
//Blank Document
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream("createparagraph.docx");
bill date1=new bill();
String day1=date1.date();
document.write(out);
out.close();
}
public String date()
{
int day, month, year;
int second, minute, hour;
GregorianCalendar date = new GregorianCalendar();
day = date.get(Calendar.DAY_OF_MONTH);
month = date.get(Calendar.MONTH);
year = date.get(Calendar.YEAR);
second = date.get(Calendar.SECOND);
minute = date.get(Calendar.MINUTE);
hour = date.get(Calendar.HOUR);
String day1= String.valueOf(day);
String month1= String.valueOf(month);
String year1= String.valueOf(year);
String second1= String.valueOf(second);
String minute1= String.valueOf(minute);
String hour1= String.valueOf(hour);
XWPFDocument document= new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
run.setText(day1+"/"+month1+"/"+year1+" "+second+":"+minute1+":"+hour1);
return day1;
}
}
在您的第一个示例中,您收到语法错误,因为您的 "run" 变量不在您调用它的同一范围内。方法中的变量只能由同一组 { } 中的其他代码使用或 "seen"。
因此,例如这样的 将不起作用 :
public static void main(String[] args) {
int name = "Sally";
sayHi();
}
public void sayHi(){
System.out.println("Hi " + name);
}
sayHi 方法无法知道名称是什么。不过,您可以将其作为参数传递。
您的第二个示例不起作用,因为您在获得日期后没有做任何事情。您无需先将日期添加到文档中即可立即编写文档。此外,您只返回当天,而不是整个日期。
我已经编写了一个快速的小程序,应该可以满足您的要求:
public class Bill {
public static void writeDate(XWPFDocument document) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
String date = sdf.format(new Date());
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText(date);
}
public static void main(String[] args) throws Exception {
XWPFDocument document = new XWPFDocument();
writeDate(document);
FileOutputStream out = new FileOutputStream("createparagraph.docx");
document.write(out);
out.close();
}
}
一些事情。
我冒昧地使用了一个 Date() 对象,尽管你所做的是可行的。
按照惯例,我们在 Java 中将 class 个名字大写。 即
public class bill {
应该是
public class Bill {
按照惯例,方法名称应简洁地描述其用途。您的 date() 方法名称并没有说明正在发生的事情。
如果其中任何一个没有意义,请告诉我。