假设我有以下object
object CaseObjs {
trait Person
case object Female extends Person
case object Male extends Person
}
出于Don't Repeat Yourself的目的,我想在Java语言中使用这些CaseObjs.Male and .Female作为类似枚举的数据结构。
换句话说,我更愿意在Java中使用这些case object,而不是创建一个重复代码的新Java enum。
我能这么做吗?
有没有可能在java中定义这样的东西?
C#代码:
public enum Character
{
A = 1,
B = 2,
C = 4,
D = 8
}
...
Character ch = /* from user */
if(ch & Character.A)
{
// some operation...
}
例如,如果ch设置为Character.B,则if的结果将为false
ch = 00000000 00000000 00000000 00000010
A = 00000000 00000000 00000000
是否有可能对代码块进行注释?例如用于循环还是简单的花括号?如果是这样的话,是怎么做的?
First.java
package An;
import An.ForCycle;
class First {
public static void main(String[] args) {
First f = new First();
}
public First () {
@ForCycle
{ // error: illegal start of type {
int k;
}
我知道在Java中,enum常数是隐式的static final变量。但是enum类可以有一个实例变量,比如size。所以每个enum常量都有一个“大小”的副本。这方面的等效Java代码是什么?我的意思是,“似乎”静态enum常量使用的是一个非静态实例变量,这通常是不可能的?
enum Members{
A(1),B(2),C(3); // I have 3 enum constants here
private int size;
Members (int size) {
//System.out.println("Initializing
我有Java中的现有实现,必须重写为Rust。
Java代码
enum Direction {
EAST(0), WEST(180), NORTH(90), SOUTH(270);
private Direction(final int angle) {
this.angle = angle;
}
private int angle;
public int getAngle() {
return angle;
}
}
Java代码使用示例
Direction d1 = Direction.EAST;
Dire
在COM方案中,如何在Delphi中实现类型安全枚举?基本上,我想用封装在类中的一组静态最终对象引用替换枚举的一组基本常量。在Java中,我们可以这样做:
public final class Enum
{
public static final Enum ENUMITEM1 = new Enum ();
public static final Enum ENUMITEM2 = new Enum ();
//...
private Enum () {}
}
并使用自定义枚举类型进行比较:
if (anObject != Enum.ENUMITEM1) ...
我使用的是具有透明激活/持久性的db4o 8.0。我有一个包含EnumSet (和其他东西)的类。我实例化,在set和存储中添加一个枚举值。当我在DB中搜索时,获取它并试图激活对象--我得到了这个异常:
Exception in thread "main" java.lang.ClassCastException: class Resources.Enums$fooEnum_t != null
at java.util.EnumSet.typeCheck(EnumSet.java:380)
at java.util.RegularEnumSet.add(Regu
我正在我的应用程序中创建一个数据报套接字,如下所示:
DatagramSocket socket = new DatagramSocket(60000,
InetAddrByName("192.168.1.72"));
此数据报构造函数返回异常
java.net.BindException: The requested address could not be bound.
我使用的是iMac和Eclipse3.4.2。我检查了端口60000是空闲的。我的ip地址也是192.168.1.72。那么,问题可能是什么呢?
如果我以这种方式在声明枚举常量之前或不声明枚举常量之前声明了一个变量:
enum MyEnum
{
int i = 90;
}
它显示以下编译错误。
MyEnum.java:3: <identifier> expected
{
^
MyEnum.java:4: ',', '}', or ';' expected
int i = 90;
^
MyEnum.java:4: '}' expected
int i = 90;
^
MyEnum.
我得到了下面提到的错误。
java.io.InvalidClassException: cannot bind non-enum descriptor to an enum class
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1829)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.j
我对powermock是个新手。我正在尝试模拟一个私有方法并运行测试用例。但是我得到了以下错误:
java.lang.IllegalStateException: Failed to transform class with name UnitySaveFCPortPerfByInterval$PortMetric. Reason: [source error] a constructor cannot be static
at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.j
我需要在Mapper和Reducer之间传递Enum Bucket类型的列表,我已经根据实现了自定义BucketArrayWritable,Bucket Enum有一个无参数构造函数,但是我总是会得到错误。
java.lang.RuntimeException: java.lang.NoSuchMethodException: Bucket.<init>()
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:131)
at org.apache.hadoop.io.W
我正在尝试用持久化下面的类
public class Field {
@DatabaseField(id = true)
public String name;
@DatabaseField(canBeNull = false)
public FieldType type;
...
}
FieldType是一个public enum。SQLite中与type对应的字段是string (不支持枚举)。当我尝试使用它时,我得到了以下异常:
INFO [main] (SingleConnectionDataSource.java:244) - Establi
我的错误越来越少。
错误BC30512选项严格禁止隐式从“clsDataTypes.enmMiscTransTypes”到“clsDataTypes.enmMiscTransDistributions”的转换。
下面提到的是代码,我将一个可选的参数传递给如下所示的子程序。
Public Sub NotifyDisbursementDistribChanged(
Optional ByVal enmRemovedDistribOption As clsDataTypes.enmMiscTransDistributions = clsDataTypes.enmMiscTransTy
我们可以在匿名类中声明枚举吗?
我编写了一个示例程序,令人惊讶的是,在匿名类中没有任何枚举常量的空枚举编译,但是带有枚举常量的枚举没有。
下面的程序给出错误消息
Main.java:16: error:非静态变量,不能从静态上下文obj.no(新的a() { enum {j})引用;
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "
我希望能够将在java中声明的枚举映射到在postgres中创建的枚举。例如,具有以下功能:
CREATE TYPE EYE_COLOR AS ENUM ('BROWN', 'BLUE', 'GREEN');
CREATE TABLE PERSON (
ID INT PRIMARY KEY AUTO_INCREMENT,
NAME NVARCHAR2(128) NOT NULL,
EYE EYE_COLOR
);
在java中,我有这样的东西:
public enum EyeColor {