相关疑难解决方法(0)

创建字符串枚举的最佳方法是什么?

使enum类型表示一组字符串的最佳方法是什么?

我试过这个:

enum Strings{
   STRING_ONE("ONE"), STRING_TWO("TWO")
}
Run Code Online (Sandbox Code Playgroud)

我怎么能用它们Strings呢?

java enums

350
推荐指数
7
解决办法
45万
查看次数

枚举和常量.哪个用的?

我正在对枚举进行一些阅读,发现它们与声明常量非常相似.我怎么知道何时使用常量而不是枚举,反之亦然.使用枚举有哪些优点?

c# language-agnostic enums

91
推荐指数
5
解决办法
6万
查看次数

我应该严格避免在Android上使用枚举吗?

我过去常常Bundle在如下界面中定义一组相关常量(如键):

public interface From{
    String LOGIN_SCREEN = "LoginSCreen";
    String NOTIFICATION = "Notification";
    String WIDGET = "widget";
}
Run Code Online (Sandbox Code Playgroud)

这为我提供了一种更好的方法来将相关常量组合在一起并通过静态导入(而不是实现)来使用它们.我知道Android框架也使用常数在同样的方式一样Toast.LENTH_LONG,View.GONE.

但是,我经常觉得Java Enums提供更好,更强大的方式来表示常数.

但是,有没有在使用性能自动问题enumsAndroid

通过一些研究,我最终陷入困惑.从Android的性能提示Google中删除了"避免使用只需要Ints的枚举"的问题 吗?显然已经从其性能提示中删除了"避免枚举",但是从它的官方培训文档中了解内存开销部分它清楚地说:"枚举通常需要的内存是静态常量的两倍多.你应该严格避免在Android上使用枚举."这仍然很好吗?(Java在1.6之后的版本中说)

我观察到的一个问题,更是发送enumsintents使用Bundle我应该序列化给他们(即putSerializable(),我认为一个昂贵的操作比较原始的putString()方法沉绵enums提供它是免费的).

有人可以澄清哪一个是代表相同的最佳方式Android?我应该严格避免使用enumsAndroid

java enums android

90
推荐指数
5
解决办法
4万
查看次数

打字稿中枚举的意义是什么

打字稿中枚举的用途是什么。如果它的目的只是为了使代码可红,我们就不能为了同样的目的使用常量吗?

enum Color {
Red = 1, Green = 2, Blue = 4
};


let obj1: Color = Color.Red;
obj1 = 100; // does not show any error in IDE while enum should accept some specific values
Run Code Online (Sandbox Code Playgroud)

如果没有typechecking的优势,难道就不能这么写。

const BasicColor = {
    Red: 1,
    Green: 2,
    Blue: 4
};

let obj2 = BasicColor.Red;
Run Code Online (Sandbox Code Playgroud)

typescript

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

Java 8中的超类String和Integer

我正在编写一个简单的Predicate函数,如下所示:

public static Predicate<String> stringPredicate(String op, String compVal) {
    if (op.equals("=")){
        return p -> p.compareTo(compVal) == 0;
    }
    else if (op.equals("<")){
        return p -> p.compareTo(compVal) == -1;
    }
    else if (op.equals("<=")){
        return p -> p.compareTo(compVal) == 0 || p.compareTo(compVal) == -1;
    }
    else if (op.equals(">")){
        return p -> p.compareTo(compVal) == 1;
    }
    else if (op.equals(">=")){
        return p -> p.compareTo(compVal) == 1 || p.compareTo(compVal) == 0;
    }
    return p -> -1 == 0; //return false 
}
Run Code Online (Sandbox Code Playgroud)

我希望这个函数适用于Integers,Floats和Strings.因此,不是编写两个相同的谓词函数,一个用于字符串,一个用于Integer + Float,我想写一个,因为compareTo()方法适用于所有3个.我想我可以通过替换 Predicate<String>来实现 …

java lambda apache-spark

0
推荐指数
1
解决办法
470
查看次数

类中的静态final字段与java中的Interface字段

我需要在我的应用程序中创建100个或更多静态最终常量,我可以按照我的理解实现这两种方式:

  1. 在其中创建一个简单的java class并创建static final字段
  2. 创建一个接口,将所有变量放入其中,因为接口中的所有字段都是隐式的 static final

我在上面的方法中有这些问题:

  1. 哪一个是正确的方法来实现这一目标?
  2. 哪一个是内存有效的方法?
  3. 有没有设计模式来实现这一目标?

java oop design-patterns

0
推荐指数
1
解决办法
81
查看次数

我为什么要使用枚举而不是字符串?

为什么这是"良好的编码实践"?例如,当我制作Rock Paper Scissors控制台游戏时,大多数人建议使用枚举而不是字符串.有什么不同?

c# enums

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