AtomicRefrence 和 枚举

转载 2013年12月05日 15:04:01
public abstract class AbstractFoo {
	private int x,y; 
	private enum State{NEW,INITIALIZING,INITIALIZED} 
	private final AtomicReference<State> init = new AtomicReference<State>(State.NEW); 
	public AbstractFoo(int x,int y){initialize(x,y);} 
	protected AbstractFoo(){}; 
	protected final void initialize(int  x ,int y){
		if(!init.compareAndSet(State.NEW, State.INITIALIZING)){
			throw new IllegalStateException("Already initialized");
		}
		this.x = x;
		this.y =y;
		init.set(State.INITIALIZED);
	} 
	protected int getX(){checkInit();return x;}
	protected int getY(){checkInit();return y;} 
	private void checkInit(){
		if(init.get()!=State.INITIALIZED){
			throw new IllegalStateException("Not initialized");
		}
	} 
}

相关文章推荐

数据结构与算法_枚举(穷举)算法

  • 2017年11月14日 23:03
  • 20.2MB
  • 下载

枚举java基础知识点

  • 2017年11月03日 12:39
  • 27KB
  • 下载

单例模式的八种写法比较、枚举实现的好处、静态内部类实现单例原理

目录 简介 基本的实现思路 注意事项 单例模式的八种写法 1、饿汉式(静态常量)[可用] 2、饿汉式(静态代码块)[可用] 3、懒汉式(线程不安全)[不可用] 4、懒汉式(线程安全,同步方法...
  • a_long_
  • a_long_
  • 2016年04月13日 10:49
  • 2388

esedatebaseview枚举器

  • 2016年09月07日 17:15
  • 94KB
  • 下载

枚举串口小工具

  • 2015年07月22日 13:58
  • 126KB
  • 下载

JAVA回顾二之枚举类的使用

关于枚举类,最近看了一些实例 ,并且自己下手写了一些代码。最终感觉枚举类的实质就是下面几句话,不知道对不对:     枚举值  S111、SBBB、SCCC都是AAA“类”的实例,或者可以是AAA“类...

枚举OPC server端itemID的方法

  • 2016年01月04日 08:44
  • 2KB
  • 下载

网页枚举源码

  • 2013年12月21日 02:57
  • 93KB
  • 下载

1198. Substring 8个串排出最小字典序(8!枚举)

/* 1198. Substring 8个串排出最小字典序(8!枚举) 题目大意: 用N个字符串拼成一个新的字符串 要求新字符串字典序最小 ...

R3暴力枚举驱动

  • 2014年03月31日 05:24
  • 17KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AtomicRefrence 和 枚举
举报原因:
原因补充:

(最多只允许输入30个字)