开发者社区> 问答> 正文

是否可以在Java中调用final对象?

是否可以调用在同一类的另一个方法中的方法中声明的final对象?

public class MyClass{

    public void description(){
        //something...
        //something..

        final HashMap<String,String> desc = new HashMap<String,String>();
    }

    public void call(){

    }
}

我可以desc在函数中调用对象call()吗?

问题来源:Stack Overflow

展开
收起
montos 2020-03-22 08:33:54 1635 0
3 条回答
写回答
取消 提交回答
  • 声明就出错了吧。

    final用法:

    1. 修饰类

    当用final去修饰一个类的时候,表示这个类不能被继承。

    1. 修饰方法

    被final修饰的方法不能被重写。

    1. 修饰成员变量
    2020-03-29 13:10:17
    赞同 展开评论 打赏
  • 个人对建模比较关注

    不行,方法内的是局部变量,方法结束后就消失了,局部变量存在于方法所属线程的栈的栈帧内。

    2020-03-25 17:29:32
    赞同 展开评论 打赏
  • 没有像final objectJava 这样的东西。您声明的是最终变量或最终引用。这意味着您不能在范围内重新分配此变量名称。但是,这与所引用的对象无关。因此,您可以按以下方式传递此对象:

    public class MyClass {
    
      public void description() {
        //something...
        //something..
    
        final HashMap<String,String> desc = new HashMap<String,String>();
        call(desc);
      }
    
      public void call(Map<String, String> desc) {
        // do something, may be desc.put(key, val);
      }
    }
    

    回答来源:Stack Overflow

    2020-03-22 08:35:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载