Can';t在main()方法中实例化字段(实例变量)。为什么?JAVA

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

有人能告诉我我做错了什么吗?当我在Eclipse中有这段代码时,它告诉我,当我试图在main方法中将
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。但无论您做什么,都应该在创建类实例期间或之后设置该字段。非常感谢您的及时响应!你能看看下面的评论并在这个(你的)评论帖子上回答吗?再次感谢!非常感谢您的及时回复!你能看看下面的评论并在这个(你的)评论帖子上回答吗?再次感谢!