Java静态自引用

时间:2014-04-07 08:41:24

标签: java reference static

非静态setter方法如下所示:

private int var;

public void setVar(int var) {
  this.var = var;
}

我无法通过静态方法找到解决方法:

private static int var;

public static void setVar(int var) {
  // ???
}

一种解决方案是编写myClass.var = var;。但那很难看,因为当我重命名我的课时,我必须找到并替换所有出现的事。 另一种解决方案是将参数重命名为v并写入var = v;。对我来说,这也是丑陋的。

真的没有办法解决这个问题,就像在php self::var = var;中一样吗?

4 个答案:

答案 0 :(得分:2)

重命名字段变量是最方便的方法。看看Android Code Style Guideline。他们建议将所有静态字段命名为sVariable。它并不丑陋且非常容易理解。所以,它会是这样的:

private static int sVar;

public static void setVar(int var) {
  sVar = var;
}

答案 1 :(得分:1)

我们需要写如下:

 ClassName.var=var;

答案 2 :(得分:1)

这样做:

public class Example {

    private static int var;

    public static void setVar(int var) {
      Example.var = var;
    }
}

答案 3 :(得分:1)

用你知道的其他方式做这件事是不可能的............

myClass.var = var;
var = v;

只有两种方式你已经知道.......... 两者都很好..没有一个是丑陋的你可以使用.......

如果您将使用像eclipse这样的任何IDE,只要您更改类的名称就会小心............