发布网友
共3个回答
热心网友
枚举:这个一般是用于配置,或者定义一个有限的集合
如果我要定义一个星期类,那么我们定义一个枚举类叫做星期,里面的星期一、星期二、……星期日等这七个值就是他的枚举值
又比如:我要定义一个操作类似,这个操作类型只有添加、删除、修改、保存,这四个操作类型,我就可以将这个操作类型定义为一个枚举
注解:注解可以看作是一个类的元数据,这些数据告诉编译器在编译这个类时应该如果作。这些和我们以前使用的配置文件是类似的,但是注解相对于配置文件要更方便,简单
如 我们使用hibernate时,定义了一个字段:
@NotEmpty
private String userName;
我们给这个字段添加了一个NotEmpty的注解,这个类在编译运行的时候就会来检查这个字段是否为空,如果为空就做相应的提示
那这个检查按什么规则来检查的呢?我们在添加NotEmpty这注解的时候会引入一个类org.hibernate.validator.constraints.NotEmpty;
在这个类里面会有关于这个NotEmpty的定义,里面对这些又做了层封装,和我们之前自己手动的写代码判断这个字段是否为空是一样的
这个注解也可以在XML文件里面配置,作用是一样的,只是手段不一样罢了
热心网友
//我们所定义的每个枚举类型都是集成自java.lang.Enum类
//枚举中的成员都是public static final的
//枚举中的每个成员都是枚举类型的一个实例
//换句话说枚举中的实例在编译时就已经确定好了,无法再创建新的对象
public class EnumTest
{
public static void doOp(OperateConstant op)
{
switch(op)
{
case RETURN_LEFT:
System.out.println("向左转");
break;
case RETURN_RIGHT:
System.out.println("向右转");
break;
case SHOOT:
System.out.println("射击");
break;
default:
System.out.println("操作");
}
}
public static void main(String[] args)
{
doOp(OperateConstant.RETURN_LEFT);
doOp(OperateConstant.RETURN_RIGHT);
doOp(OperateConstant.SHOOT);
}
}
//定义一个枚举类型
enum OperateConstant
{
RETURN_LEFT, RETURN_RIGHT, SHOOT
}
通俗的说枚举就是把所有的有限的可能一一列举出来,
注解一般作用像是定义一种规范,在实际开发中很少使用,只是在一些框架中可能会使用到,单元测试junit4就是基于注解来实现的,java自身提供了几个已经定义好的注解
比如:Override 注解表示子类要重写(override)父类的对应方法
Deprecated注解表示方法是不建议被使用的
SuppressWarnings 注解表示抑制警告
我们还可以自定义注解,下面是我以前写过的代码,希望对你有帮助
//自定义注解(annotation)
//当注解中的属性名为value时,我们是有它的时候可以直接赋值
//如果属性名为其他值,必须要显示指定属性名赋值
//@Documented该注解所修饰的注解在使用时,使用该注解的类在生成帮助文档时可以把注解一并生成
//@Inherited该注解所修饰的注解在使用时,父类中使用的该注解会被子类继承
package com.test.annotation;
@AnnotationTest1(value1 = "hello", value2 = {EnumTest.World, EnumTest.Hello}) //注解的属性为数组时,当传入一个值时可以直接赋值,多个值必须要写成数组形式
public class AnnotationTest
{
@AnnotationTest1(value2 = EnumTest.Welcome) //value1使用 默认值
public void method()
{
System.out.println("usage of annotation");
}
public static void main(String[] args)
{
AnnotationTest usage = new AnnotationTest();
usage.method();
}
}
//定义一个注解
@interface AnnotationTest1
{
String value1() default "hello"; //设置value1的默认值为hello
EnumTest[] value2(); //注解里如果有两个属性则要分别赋值,中间用逗号隔开
}
//定义一个枚举
enum EnumTest
{
Hello, World, Welcome
}
注解的内容是相当多的,这样也说不清,建议你找点视频资料看看,了解一下会有帮助
热心网友
玖举?什么意思啊