小编soa*_*rol的帖子

使用java枚举实现位域

我维护一个大型文档存档,我经常使用位字段来记录处理期间或验证文档时的状态.我的遗留代码只使用静态int常量,例如:

static int DOCUMENT_STATUS_NO_STATE = 0
static int DOCUMENT_STATUS_OK = 1
static int DOCUMENT_STATUS_NO_TIF_FILE = 2
static int DOCUMENT_STATUS_NO_PDF_FILE = 4
Run Code Online (Sandbox Code Playgroud)

通过设置适当的标志,可以很容易地指示文档所处的状态.例如:

status = DOCUMENT_STATUS_NO_TIF_FILE | DOCUMENT_STATUS_NO_PDF_FILE;
Run Code Online (Sandbox Code Playgroud)

由于使用静态常量的方法是不好的做法,并且因为我想改进代码,所以我希望使用Enums来实现相同的目标.有一些要求,其中之一是需要将状态作为数字类型保存到数据库中.因此需要将枚举常量转换为数值.以下是我的第一种方法,我想知道这是否是正确的方法呢?

class DocumentStatus{

    public enum StatusFlag {

        DOCUMENT_STATUS_NOT_DEFINED(1<<0),
        DOCUMENT_STATUS_OK(1<<1), 
        DOCUMENT_STATUS_MISSING_TID_DIR(1<<2),
        DOCUMENT_STATUS_MISSING_TIF_FILE(1<<3),
        DOCUMENT_STATUS_MISSING_PDF_FILE(1<<4),
        DOCUMENT_STATUS_MISSING_OCR_FILE(1<<5),
        DOCUMENT_STATUS_PAGE_COUNT_TIF(1<<6),
        DOCUMENT_STATUS_PAGE_COUNT_PDF(1<<7),
        DOCUMENT_STATUS_UNAVAILABLE(1<<8);


        private final long statusFlagValue;

        StatusFlag(long statusFlagValue) {
            this.statusFlagValue = statusFlagValue;
        }

        public long getStatusFlagValue(){
            return statusFlagValue;
        } 

       }


    /**
     * Translates a numeric status code into a Set of StatusFlag enums
     * @param numeric statusValue 
     * @return …
Run Code Online (Sandbox Code Playgroud)

java enums enumset

38
推荐指数
5
解决办法
3万
查看次数

IDEA IntelliJ git clone

我是git和IntelliJ的新手.我想从远程git存储库获取项目的源代码,并使用IntelliJ进行处理.我习惯使用Eclipse和SVN,它有一个"Checkout as Project"对话框.

我尝试使用"从版本控制中检出"但没有任何成功.

  • 正如我输入的"GIT Repo URL" git+ssh://user@devserver.dev.org:/var/git/myProject
  • 作为"父目录",我添加了本地目录 /home/myName
  • 作为"Dir Name"我添加了 myProject

我按下克隆按钮,IDE上没有任何动静.它确实/home/myName/myProject使用.git配置创建了目录,但是没有从远程存储库中获取任何内容,也没有出现"新项目"Wizzard.

有人可以说明使用IntelliJ和Git与Eclipse和SVN相比如何做到这一点?我正在使用IDEA 10.5和Fedora LINUX OS.

git intellij-idea

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

enums ×1

enumset ×1

git ×1

intellij-idea ×1

java ×1