我有一个最终的非静态成员:

private final HashMap myMap;

我想使用构造函数调用的方法对其进行初始化。 由于myMap是最终版本,因此我的“ helper”方法无法直接对其进行初始化。 我当然有选择:

我可以直接在构造函数中实现myMap初始化代码。

MyConstructor (String someThingNecessary)

{

myMap = new HashMap();

myMap.put("blah","blahblah");

// etc...

// other initialization stuff unrelated to myMap

}

我可以让我的助手方法构建HashMap,将其返回给构造函数,然后让构造函数将对象分配给myMap。

MyConstructor (String someThingNecessary)

{

myMap = InitializeMyMap(someThingNecessary);

// other initialization stuff unrelated to myMap

}

private HashMap InitializeMyMap(String someThingNecessary)

{

HashMap initializedMap = new HashMap();

initializedMap.put("blah","blahblah");

// etc...

return initializedMap;

}

方法2很好,但是,我想知道是否有某种方法可以允许helper方法直接操作myMap。 也许表明它只能由构造函数调用的修饰符?

MyConstructor (String someThingNecessary)

{

InitializeMyMap(someThingNecessary);

// other initialization stuff unrelated to myMap

}

// helper doesn't work since it can't modify a final member

private void InitializeMyMap(String someThingNecessary)

{

myMap = new HashMap();

myMap.put("blah","blahblah");

// etc...

}

java final 初始化_在Java中,可以从构造函数助手中初始化final字段吗?相关推荐

  1. java final 类_在Java中,final修饰的类有什么特点

    展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...

  2. java final 初始化_[转]java static final 初始化

    1.static修饰(类变量)一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为privat ...

  3. java list定义和初始化_在 Java 中初始化 List 的五种方法

    Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式. 1.构造 List 后使用 List.add 初始化 这是最常规的做法,用起来不太方便. 2.使用 {{}} 双括号语法 这种 ...

  4. java全局变量初始化_为什么 Java 中全局变量不一定初始化,局部变量必须初始化?...

    前几天,有个大佬考了我一个问题:为什么类的成员变量不需要指定值就可以自动赋予初始值,而方法内的局部变量就必须指定初始值呢? 说实话,这个问题确实难倒我了,之后我在网上一顿操作,终于把这个问题弄得稍微明 ...

  5. java类成员变量初始化_探讨Java类中成员变量的初始化方式

    在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Fi ...

  6. 类加载器 java委托机制_解析Java虚拟机中类的初始化及加载器的父委托机制

    类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始化: 2.在静态代码块中进行初始化. 没有 ...

  7. java final域_【Java】final 域的内存语义

    文章来源:<Java并发编程的艺术> final 域的重排序规则 对于 final 域,编译器和处理器要遵守两个重排序规则. 1)在构造函数内对一个 final 域的写入,与随后把这个被构 ...

  8. java final 内存_聊聊 Java 内存模型

    原标题:聊聊 Java 内存模型 *作者:青芒@有赞 本文目录 Java内存模型 重排序 内存屏障 volatitle的内存语义 final的内存语义 一.Java内存模型 硬件处理 电脑硬件,我们知 ...

  9. java字符串拼接_为什么阿里巴巴不建议在for循环中使用quot;+quot;进行字符串拼接...

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 字符串,是 Java 中最 ...

  10. java编程思想 初始化_《java编程思想》_第五章_初始化与清理

    初始化和清理是涉及安全的两个问题,java中采用了构造器,并额外提供了"垃圾回收器",对于不再使用的内存资源,垃圾回收器能自动将其释放. 一.用构造器确保初始化 java中,通过提 ...

最新文章

  1. python简单代码input-【python系统学习05】input函数——实现人机交互
  2. 双端队列的实现与应用
  3. ansible-playbook组件解析及操作全解
  4. java hex to float_Hex to Float
  5. (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型
  6. ASP.NET MVC3 学习笔记(一)MVC模式简介
  7. 计算机英语900句.pdf,计算机英语900句第一章第一课:概貌
  8. word2vec原理CBOW与Skip-Gram模型基础
  9. python3使用matplotlib绘制风速风向玫瑰图
  10. 后羿 11 ‖ 洛神
  11. bash快捷键Quick bash shortcuts--用Enki学Linux系列(4)
  12. 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
  13. 时间最优轨迹规划(3-5-3次多项式)
  14. 全藏字【藏文字】的生成算法设计
  15. 凡是过去,皆为序章——NFT2.0的演进路径:金融化与商品化
  16. 斯隆奖获得者李博:从博弈论出发,和「偶像」并肩的感觉很好 | 青源专栏
  17. pdf文件怎么修改文字
  18. 网页动态蜘蛛网线条特效
  19. Redis哨兵Sentinel的搭建和原理说明
  20. 信号与电源完整性4:网络间的串扰分析及解决方案

热门文章

  1. leetcode 413. Arithmetic Slices | 413. 等差数列划分(Java)
  2. leetcode 241. Different Ways to Add Parentheses | 241. 为运算表达式设计优先级(Java)
  3. Java批量生成数据库测试数据
  4. netty系列之:自定义编码解码器
  5. SpringBoot中的响应式web应用
  6. 一文弄懂EnumMap和EnumSet
  7. C++右值引用和完美转发
  8. 跟着微信后台团队学习分布式一致性协议
  9. 区块链技术指南笔记(一):区块链基本概念
  10. c语言小饭店等位就餐程序,C语言程序设计 C语言程序设计 3.C语言程序设计教案全部.doc...