对非静态字段的静态引用

Static reference to a non Static field

好的,所以我很确定我在这里遗漏了一些非常愚蠢的东西,但是对于编码作业,我需要创建一个名为 'Android' 的 public class并赋予它符合规范的实例变量和方法。

我一直收到错误消息:

文件:C:\Users\somerandomuser\Desktop\hmwk\Android.java [行: 35] 错误:无法对非静态字段标记进行静态引用

这是我的 Android class:

import java.util.*;

public class Android
{
  private int tag;
  private String name;

  public Android()
  {
    name = "Bob"+tag;
    tag = changeTag();

  }

  public String getName()
  {
    return name;
  }

  private static boolean isPrime(int n)
  {
    //random magic bullshit goes here....
    int i;
    for (i=2; i<n;i++) {
      if (n%i==0)
        return false;
    }
    return true;
  }

  private static int changeTag()
  {
    //advanced magic bullshit goes here....
    boolean exit = false;
    int query = tag;
    while (!exit)
    {
      exit=isPrime(query);
      if (!exit)
      {
       query++;
      }
      else
      {
        int x;
      }
    }
  }
    public int getTag()
    {
      return tag;
    }
}

提前致谢!

这是特定于实例的

private int tag;

这是一个静态方法。

private static int changeTag()
  {
    //advanced magic bullshit goes here....
    boolean exit = false;
    int query = tag;
    ...
 }

将标记设为静态,或将该方法更改为非静态。

附带说明一下,编译器确实告诉您查看第 35 行,这是发生错误的地方。此外,这是一个作业练习 (/hmwk/),堆栈溢出不是作业问题的地方。