【问题标题】:Declaring class level variables JAVA声明类级变量 JAVA
【发布时间】:2013-09-30 14:58:59
【问题描述】:

是否可以在方法中声明类级变量?

我只是想创建一个静态计数器,但我只想在需要时创建它。调用它的类应该比函数本身寿命更长。

我对此的需求很少,但我很想知道它是否可行。

【问题讨论】:

标签: java


【解决方案1】:

不可能声明类级别字段,除非您正在做一些元编程的东西,比如疯狂的字节码级别修改,这不会为自己买单。所有声明都在编译时完成。

【讨论】:

    【解决方案2】:

    “是否可以在方法中声明类级变量?”

    如果从字面上看 - 是的:) 方法本地类是可能的:

    void method() {
        class LocalClass {
            private Object variable;
        }
    }
    

    【讨论】:

    • private 似乎毫无意义,可能需要static ("create a static counter")。
    • 同意。我只是习惯性地打印“私人”。但这并不像看起来那样毫无意义。方法内部有一个命名空间,因此可以使用 private 修饰符对另一个方法本地类隐藏变量。方法本地内部类不能是静态的,所以它们不能有静态字段。
    • “对另一个方法本地类隐藏变量” - 抱歉,最好说“从相同方法本地类以外的其他类”。
    • 因此,如果它们不能是静态的,那么创建静态计数器就行不通,对吧?我不确定我是否理解另一部分。您的意思是如果它是私有的,那么继承该方法的类就无法访问它?
    • 这没有回答这个问题。他想要一个static.
    【解决方案3】:

    'static ... when needed'在术语上是矛盾的。答案是“不”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      相关资源
      最近更新 更多