相关疑难解决方法(0)

Java中枚举的命名:单数还是复数?

是否有关于如何命名Java枚举的"官方"建议?

enum Protocol { HTTP, HTTPS, FTP }
Run Code Online (Sandbox Code Playgroud)

要么

enum Protocols { HTTP, HTTPS, FTP }
Run Code Online (Sandbox Code Playgroud)

我知道在.Net世界中,建议使用单数,除了表示位标志的枚举.只是好奇Java中是否有类似的东西.

一个相似的问题似乎是.Net特定的:枚举的单数或复数?

java enums naming-conventions

168
推荐指数
2
解决办法
3万
查看次数

静态最终变量的Java命名约定

有一条规则说:

表示常量(最终变量)的名称必须全部使用下划线来分隔单词(取自http://geosoft.no/development/javastyle.html)

这适用于原始类型,如int或字符串:

private static final int MAX_COUNT = 10;
Run Code Online (Sandbox Code Playgroud)

但是什么是非原始类型?在大多数情况下,我见过以下内容:

private static final Logger log = Logger.getLogger(MyClass.class);
Run Code Online (Sandbox Code Playgroud)

或者在单例中,实例变量不是大写的.

问题是声明这些类型的变量(如日志和实例)的正确方法是什么?

java coding-style

89
推荐指数
5
解决办法
13万
查看次数

字符串与Java枚举的不区分大小写匹配

JavavalueOf()为每个Enum<T>对象提供了一个方法,所以给出了enum类似的方法

public enum Day {
  Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Run Code Online (Sandbox Code Playgroud)

一个人可以像查找一样

Day day = Day.valueOf("Monday");
Run Code Online (Sandbox Code Playgroud)

如果传递给的字符串valueOf()与现有Day值不匹配(区分大小写),IllegalArgumentException则抛出a.

要进行不区分大小写的匹配,可以在Day枚举中编写自定义方法,例如

public static Day lookup(String day) {
  for (Day d : Day.values()) {
    if (d.name().equalsIgnoreCase(day)) {
      return type;
    }
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

是否有任何通用的方法,在不使用值或任何其他额外对象的缓存的情况下,只编写一次lookup()上面的静态方法(即,不是每个enum),假定该values()方法Enum<E>在编译时被隐式添加到类中?

这种"通用" lookup()方法的签名与该方法类似Enum.valueOf(),即:

public static <T extends Enum<T>> T lookup(Class<T> enumType, String name); …
Run Code Online (Sandbox Code Playgroud)

java generics enums

41
推荐指数
6
解决办法
4万
查看次数

Java Enum类型编码公约

我有一个枚举类型......

public static enum Methods {
    NOTEQUAL,
    ORDERED,
    minMatch,
    minItem,
    minLength,
    sameLength,
}
Run Code Online (Sandbox Code Playgroud)

问题是我应该如何使用编码约定.我应该使用camelCase NotEqual(我在一个简单的类中使用)还是应该这样做:NOT_EQUAL?或者只是使用大写字符:NOTEQUAL,SAMELENGTH

这有什么代码约定吗?

java enums coding-style

11
推荐指数
1
解决办法
3万
查看次数

Java成员枚举类型是否应该大写?

这里的肛门问题:我们有Java枚举,它们是自己的类,以及作为类成员的枚举:

public enum reportType { ...
Run Code Online (Sandbox Code Playgroud)

每次我看到它都会刺激我*因为当我看到它在声明中使用时,它是一个类型,并且类型应该大写.但是当我试图利用它时,Eclipse警告我不应该将字段名称大写.我认为Eclipse可能比我更了解官方的Java约定,但它似乎并不正确.甚至翻阅了Java约定文档,但没有看到引用这个问题.

  • 没有双关语意图

java eclipse enums coding-style naming-conventions

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

Java中的Enum值的"子集"

我有一个Java类,其形式如下: -

public class Angle
{
    ANGLE_TYPE angleType;

    ANGLE_TYPE defaultAngleType = ANGLE_TYPE.RAD;

    enum ANGLE_TYPE
    {
        DEG, RAD, DEGMIN, DEGMINSEC;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如可以看到的,该类定义了"枚举".我的问题是关于实例变量'defaultAngleType'.我希望它是这样的,所以这个变量只能赋值RAD或DEG,否则抛出错误.

知道如何实现这个吗?

java enums

7
推荐指数
1
解决办法
5711
查看次数

是否可以使用 int 标识符定义枚举?

我的问题是“枚举中是否可以有一个 int 标识符?” 我正在开发一个 java 程序,我需要有包含数字和字母的标识符,但 eclips 不接受它。

例如公共枚举标签{ 5F25, 4F, . . . }

有谁知道有没有办法解决这个问题!谢谢

java

5
推荐指数
2
解决办法
7859
查看次数

Rails中的枚举:大写还是小写?

在互联网上大多数提到JAVA枚举,无处不在提到枚举应该全部为大写(例如:)ACTIVE.

像这里:编码约定 - 命名枚举

但是当涉及到Rails时,在所有的示例和文档中,它们都使用小写枚举值(例如:'active'),如下所示:http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

这是有道理的,因为rails还通过这些枚举的名称提供实例方法(例如:obj.active?).这是Rails中的枚举被用作小写的唯一原因,还是更多呢?当我们使用枚举作为小写时,我们也不同于惯例,是否应该如此?或者我们也应该在Rails中使用大写枚举?

因此,例如我status在我的模型中有一个枚举,根据惯例,它可以是活动的,草稿的或非活动的,如果它是:

enum status: {active: 1, draft: 2, inactive: 3}
Run Code Online (Sandbox Code Playgroud)

要么:

enum status: {ACTIVE: 1, DRAFT: 2, INACTIVE: 3}
Run Code Online (Sandbox Code Playgroud)

哪一个和为什么?

ruby enums ruby-on-rails

5
推荐指数
2
解决办法
1625
查看次数

字符串包含破折号时打开Enum

我想使用enum作为切换字符串的方法,但是java抱怨我的字符串包含“-”。如下面的代码所示,其中IC19-01和IC19-02包含“-”。

public class CMain {
    public enum Model {
        IC19-01, IC19-02
    }

    public static void main(String[] args){
        String st = "IC19-01"; 
        switch (Model.valueOf(st)) {
            case IC19-01: 
                System.out.println("Case IC19-01");
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

java enums switch-statement

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

" - "在枚举java中分隔字符串

我在使用" - "创建Java中的枚举时遇到问题 - 分隔的字符串:

public enum CipherList{

   RSA-MD5,AES128-SHA,AES256-SHA;
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误.

java enums compilation

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

如何匹配枚举对象及其关联的常量值?

我创建了这个枚举:

public enum CoffeeSorts {
    Coffee("Kaffee"), Espresso("Espresso"), Mocca("Mocca"), Cappuccino(
            "Cappuccino"), LatteMacchiato("Latte Macchiato"), DoubleEspresso(
            "doppelter Espresso");

    private final String stringValue;

    private CoffeeSorts(final String s) {
        stringValue = s;
    }

    public String toString() {
        return stringValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方式来使用它

public ACoffee createCoffee(String type) {

        switch (type) {
        case CoffeeSorts.Cappuccino :
            try {
                return new ChocolateSprincles(new Cream(new Coffee()));
            } catch (Exception e) {}
            return null;
            break;
        case CoffeeSorts.LatteMacchiato :
            try {
                return new ...
            }
        .
        .
        .
    }
Run Code Online (Sandbox Code Playgroud)

它只给我一个错误,说"无法从CoffeeSorts转换为String".你能告诉我我做错了什么吗?

java enums

-1
推荐指数
1
解决办法
147
查看次数