【问题标题】:Can I declare an instance variable in Java and use it in static initialization block?我可以在 Java 中声明一个实例变量并在静态初始化块中使用它吗?
【发布时间】:2017-04-04 13:37:32
【问题描述】:
class E implements Runnable {  
static Thread t1;  
public static void main(String args[]) {  
// some code  
}  
static {t1 = new Thread();}  
}  

静态初始化块在类首次加载时执行。这个静态初始化块如何知道 t1 是一个已经声明的实例变量?

【问题讨论】:

  • t1 是静态属性而不是实例。

标签: java


【解决方案1】:

答案是否定的,你不能在静态上下文中处理实例变量,

奖金:)

我不知道你为什么需要那个, 因为main()是一个入口方法,你不应该在那里实现你的逻辑,

相反,创建E 的实例并在E 中调用一个方法来执行您的逻辑,不要将所有变量声明为static 只是为了能够从main() 使用它们。

示例:

public class E implements Runnable {  
    private Thread t1;

    public E(){
        t1 = new Thread();
    }

    public void doMyWork(){
        t1....
    }

    public static void main(String args[]) {  
        E e = new E();
        e.doMyWork();
    }  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2018-05-09
    • 2021-05-02
    相关资源
    最近更新 更多