首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

enum应用

2012-12-26 
enum使用public enum TaskState {init, checkedRequest, checkedResource, resourceLack, checkedCopyFini

enum使用

public enum TaskState {init, checkedRequest, checkedResource, resourceLack, checkedCopyFinish, unZip, runCalcul, checkedNewOutput, zipAndCopyOutput, checkedProcessState, end, error,}

?自定义的enum类,

使用一般使用enum都是switch吧?

反正我是这么用的

public void run() {TaskState ta = TaskState.init;while (shutdownRequested) {switch (ta) {//init statecase init:if (checkRequest() != 0) {ta = TaskState.checkedRequest;sleepTime(config.getWAITTIMEN1());}else{sleepTime(config.getWAITTIMEN1());}break;//a new Request file findcase checkedRequest:if (checkConditions() == 0) {ta = TaskState.resourceLack;} else {ta = TaskState.checkedResource;}break;//compute resource lackcase resourceLack:outputResourceLack();clearFolder();ta = TaskState.init;break;//compute resource OKcase checkedResource:if (checkedCopyFinish() == 0) {} else {ta = TaskState.checkedCopyFinish;}break;//compute file zip copy finishedcase checkedCopyFinish:unzipFolder();ta = TaskState.unZip;break;//unzip okcase unZip:runCalcul();ta = TaskState.runCalcul;break;//run calcul.exe case runCalcul:int i = checkProcessState();if (i == 1) {ta = TaskState.checkedProcessState;}if (i == 2) {ta = TaskState.end;}if (i == 2) {ta = TaskState.error;}break;//the calcul process is running case checkedProcessState:if (checkNewOutput() == 0) {ta = TaskState.runCalcul;} else {ta = TaskState.checkedNewOutput;}break;//a new intermediate results output case checkedNewOutput:zipFolder();ta = TaskState.runCalcul;break;//the process endcase end:zipFolder();clearFolder();ta = TaskState.init;break;//the process errorcase error:zipFolder();clearFolder();ta = TaskState.init;break;default://write answer file ,and thread sleep updateAnswer();break;}}}

?

大家随便看看吧,比较简单的switch配合 enum

?

热点排行