Can';t在main()方法中实例化字段(实例变量)。为什么?JAVA
有人能告诉我我做错了什么吗?当我在Eclipse中有这段代码时,它告诉我,当我试图在main方法中将Can';t在main()方法中实例化字段(实例变量)。为什么?JAVA,java,variables,exception,field,main,Java,Variables,Exception,Field,Main,有人能告诉我我做错了什么吗?当我在Eclipse中有这段代码时,它告诉我,当我试图在main方法中将sheetName设置为“hi”时,我无法“对非静态字段进行静态引用”。我做错了什么?我知道这一定很简单,但我到处都找不到它 public class AutoExpire { private String sheetName; private FileInputStream inputStream; /** * Instantiates the class. */ public Auto
sheetName
设置为“hi”
时,我无法“对非静态字段进行静态引用”。我做错了什么?我知道这一定很简单,但我到处都找不到它
public class AutoExpire {
private String sheetName;
private FileInputStream inputStream;
/**
* Instantiates the class.
*/
public AutoExpire() {
// do nothing
}
/**
* The main method from which the program is ran.
*
* @param args
* No arguments.
* @throws IOException
* If program fails to run.
*/
public static void main(String[] args) throws IOException {
sheetName = "hi";
main
方法是静态的,因此在main
方法中没有AutoExpire
的实例。创建一个实例,然后设置实例的字段
public static void main(String[] args) throws IOException {
AutoExpire ae = new AutoExpire();
ae.sheetName = "hi";
main
方法是静态的,因此在main
方法中没有AutoExpire
的实例。创建一个实例,然后设置实例的字段
public static void main(String[] args) throws IOException {
AutoExpire ae = new AutoExpire();
ae.sheetName = "hi";
static
表示它是类的一部分,而不是类实例(对象本身)。但是,sheetName等非静态字段是类实例的一部分。通常,您将使用具有字符串参数的构造函数创建类,并从构造函数中分配字段。如果该类可以在没有sheetName
的情况下生存,则还可以创建一个setter。但是无论您做什么,都应该在创建类实例期间或之后设置该字段。static
意味着它是类的一部分,而不是类实例(对象本身)的一部分。但是,sheetName等非静态字段是类实例的一部分。通常,您将使用具有字符串参数的构造函数创建类,并从构造函数中分配字段。如果该类可以在没有sheetName
的情况下生存,则还可以创建一个setter。但无论您做什么,都应该在创建类实例期间或之后设置该字段。非常感谢您的及时响应!你能看看下面的评论并在这个(你的)评论帖子上回答吗?再次感谢!非常感谢您的及时回复!你能看看下面的评论并在这个(你的)评论帖子上回答吗?再次感谢!