栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java枚举与注解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java枚举与注解

枚举
enum Color {
	RED {
        String getColor() {
            return "red";
        }
    },
    GREEN {
        String getColor() {
            return "green";
        }
    },
    BLUE {
        String getColor() {
            return "blue";
        }
    };
	
	//默认为private
	Color() {
        System.out.println("Constructor for: " + this.name());
    }

	abstract String getColor();
}
  1. 枚举类可以有自己的构造器,变量和方法
  2. 构造器只能用private修饰,不能被外部调用
  3. 方法可以是具体方法,也可以是抽象方法;如果枚举类有抽象方法,则必须被每个实例实现
  4. values():返回枚举类中所有的常量值
    ordinal():返回指定枚举常量的索引
    valueOf():返回指定字符串对应的枚举常量
  5. enum 定义的枚举类默认继承了java.lang.Enum类,不能继承其他类,可以实现接口
interface Run {
    void run();
}

//第一种
enum Gender implements Run {
    MALE, FEMALE;
    public void run() {
        //...
    }
}

//第二种
enum Gender implements Run {
    MALE {
        public void run() {
            //...
        }
    }, 
    FEMALE {
        public void run() {
            //...
        }
    };
}
注解 内置注解
  1. @Override:检查该方法是否是重写方法
  2. @SuppressWarnings():使编译器忽略注解中声明的警告
    关键字:“deprecation”, “unused”, “unchecked”, “all”, …
  3. @Deprecated:表示某个元素(类,方法等)已过时
元注解

对其他注解进行说明,自定义注解时可以使用

  1. @Target():指定注解的使用范围
    value:java.lang.annotation.ElementType的枚举常量 (TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR,
    LOCAL_VARIABLE, ANNOTATION_TYPE, PACKAGE)
  2. @Retention:描述注解的生命周期,即注解保留的时间长短
    value:java.lang.annotation.RetentionPolicy的枚举常量 (SOURCE < CLASS < RUNTIME)
  3. @Documented:标记的注解会被读取到JavaDoc中
  4. @Inherited:标记的注解可以被继承
自定义注解
元注解
[修饰符] @interface 注解名 {
	配置参数列表
}

//例子
@Documented
public @interface MyTag {
	String name();
	int num() default 0;
}

public class Test {
	@MyTag(name="test")
	public void test() {
		//...
	}
}
  1. 配置参数只能用public或者default修饰
  2. 如果自定义注解声明了配置参数,那么使用该注解时必须为配置参数赋值,除非有默认值
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/922166.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号