首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为给定对象创建Enum

如何为给定对象创建Enum
EN

Stack Overflow用户
提问于 2014-04-02 13:31:54
回答 2查看 42关注 0票数 0

我有一个名为- SparqlResource.java的类,在这个类中,我实例化了四个像这样的对象-

代码语言:javascript
复制
public static final SparqlResource MARK_SIMPLE_TYPE = new SparqlResource("ldmext/MarkSimpleType.rq");
public static final SparqlResource FORTRESS_HAS_ENVOY = new SparqlResource("ldmext/FortressHasEnvoy.rq");
public static final SparqlResource FORTRESS_HAS_GUARD = new SparqlResource("ldmext/FortressHasGuard.rq");
public static final SparqlResource FORTRESS_HAS_PORT = new SparqlResource("ldmext/FortressHasPort.rq");

现在从另一个类- JenaLanguageConstructor.java中,我引用这些对象如下-

代码语言:javascript
复制
runOneQuery(SparqlResource.MARK_SIMPLE_TYPE, true);
runOneQuery(SparqlResource.FORTRESS_HAS_ENVOY, true);
runOneQuery(SparqlResource.FORTRESS_HAS_GUARD, true);
runOneQuery(SparqlResource.FORTRESS_HAS_PORT, true);

现在我的问题是,是否有任何方法可以使用枚举来实现这一点,如果有,那么请给我一个示例代码,我可以用它来创建枚举吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-02 13:52:00

代码语言:javascript
复制
public enum SPARQLENUM {
    MARK_SIMPLE_TYPE("ldmext/MarkSimpleType.rq") ,
    FORTRESS_HAS_ENVOY("ldmext/FortressHasEnvoy.rq") ,
    FORTRESS_HAS_GUARD("ldmext/FortressHasGuard.rq") ,
    FORTRESS_HAS_PORT("ldmext/FortressHasPort.rq");

    private String value;

    private SPARQLENUM(String value) {
        this.value = value;
    }


    public String getValue(){
        return value;
    }


}

你可以这样称呼它:

代码语言:javascript
复制
SPARQLENUM.FORTRESS_HAS_ENVOY.getValue()

编辑的

如果需要SparqlResource对象,可以这样创建枚举:

代码语言:javascript
复制
public enum SPARQLENUM {
    MARK_SIMPLE_TYPE(new SparqlResource("ldmext/MarkSimpleType.rq")) ,
    FORTRESS_HAS_ENVOY(new SparqlResource("ldmext/FortressHasEnvoy.rq")) ,
    FORTRESS_HAS_GUARD(new SparqlResource("ldmext/FortressHasGuard.rq")) ,
    FORTRESS_HAS_PORT(new SparqlResource("ldmext/FortressHasPort.rq"));

    private SparqlResource value;

    private SPARQLENUM(SparqlResource value) {
        this.value = value;
    }


    public SparqlResource getValue(){
        return value;
    }


}
票数 1
EN

Stack Overflow用户

发布于 2014-04-02 13:35:22

嗯,创建一个枚举也没那么难:

代码语言:javascript
复制
enum MyEnum {
  VALUE1("name 1"),
  VALUE2("name 2");

  private String name;

  private MyEnum(String n) {
    name = n;
  }

  //whatever else you need
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22813121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档