Java非静态字段

时间:2013-05-29 00:28:17

标签: java

public class UDP implements Runnable {

    private String host;
    private int port;
    private int delay;
    private int timeout;

    @Override
    public void handlePacket(String host, int port, int delay, int timeout) {
        UDP.host = host;
        UDP.port = port;
        UDP.delay = delay;
        UDP.timeout = timeout;
        Executors.newSingleThreadExecutor().execute(new UDP());
    }

错误即时获取非静态字段不能引用静态上下文 我不知道我应该做什么,我知道一点点java,但我完全迷失了

1 个答案:

答案 0 :(得分:6)

使用类名作为前缀表示您正在尝试使用静态上下文。

要为实例变量赋值,请不要在其前面添加类名称,并在其前面添加this

this.host = host;
...

此外,仅使用this是必要的,因为您将参数命名为与实例变量相同。