当前位置: 首页 > 知识库问答 >
问题:

访问静态最终实例变量到静态方法错误[重复]

和嘉澍
2023-03-14

我在工作时遇到了这种特殊的行为,但我不确定这是什么问题。根据我,“静态”关键字有一些特性

1.属于类而不是对象

< b>2。静态方法可以访问类的静态实例变量。

但是,有人可以解释一下特定的行为吗:

      public static final int x=12;
      public static  void go(final int x){
          System.out.println(this.x);
      }

在编写这一行时,我在Eclipse中打印语句“this.x”时遇到complile时间错误,因为“不能在静态conetext”

有人能解释一下我的理解中缺少了什么吗??

共有2个答案

哈栋
2023-03-14

“this”指的是当前对象,而不是类。

它应该像

public static final int x=12;
      public static  void go(final int x){
          System.out.println(ClassName.x);
      }
穆招
2023-03-14

您不能指定要将类级别<code>x<code>与<code>this<code>一起使用。您需要类名。喜欢

class Example {
  public static final int x=12;
  public static  void go(final int x){
    System.out.println(Example.x);
  }
}

您也可以为方法参数使用不同的变量名。

public static final int x=12;
public static void go(final int y){
  System.out.println(x);
}
 类似资料:
  • 问题内容: 我有一个带有静态变量的Java类 如何使用反射访问对象? (我有字符串。我需要访问该对象。) 问题答案: 访问静态字段的方式与普通字段完全相同,只是不需要将任何参数传递给方法(可以传递null)。 试试这个:

  • 我是Java的初学者。我正在学习最终变量,并尝试了这段代码。 然而,Eclipse给了我一个错误。 我做错了什么?如何将所有对象的最终变量设置为静态?

  • 问题内容: 在Java中,何时应使用静态非最终变量? 例如 显然,这里我们不是在谈论常量。 根据我的经验,我经常在使用单例时对它们进行辩护,但后来我最终需要拥有多个实例,这使我感到非常头痛和重构。 似乎很少在实践中使用它们。你怎么看? 问题答案: 统计信息收集可以使用非最终变量,例如,计算创建的实例数。另一方面,对于这种情况,您可能还是要使用etc,这时可能是最终的。另外,如果您要收集多个统计信息

  • 问题内容: 将变量声明为的区别是什么 要么 如果我只希望变量是局部的,并且是常量(以后不能更改)? 谢谢 问题答案: 仅仅具有预期的效果。 声明static使其成为一个类变量,使其可以使用类名进行访问

  • 问题内容: 通常,最终静态成员,尤其是变量(或静态最终变量,当然可以以任何顺序使用,而不会重叠含义)已广泛用于Java接口中,以定义实现类的 协议行为 ,这意味着实现该类的类(继承)接口必须包含该接口的所有成员。 我无法区分 final 和 final静态 成员。final静态成员是一个声明为final或其他东西的静态成员?在哪些特定情况下应专门使用它们? 永远不能在方法内部,静态方法内部或实例方