JavaSE学习笔记 2023-12-26 --枚举和注释

2024-01-03 19:53:45

二十二、枚举和注释

? 上一篇
个人整理非商业用途,欢迎探讨与指正!!



22.1枚举

接口/类中的静态属性
以内部类的形式使用较多

public enum Color {

	RED,GREEN,YELLOW
}
class Test01 {

	public static void main(String[] args) {
		Color c = Color.RED;
		
		switch(c) {
		case RED:
			System.out.println("红色的.");
			break;
		case GREEN:
			System.out.println("绿色的");
			break;
		case YELLOW:
			System.out.println("黄色的");
			break;
		}
	}
}
public class User {
	
	public static void main(String[] args) {
		User user = new User();
		user.setGender(Gender.BOY);
		user.setRole(Role.ADMIN);
		System.out.println(user);
	}

	private int userId;
	private String username;
	private String password;
	private Gender gender;
	private Role role;
	
//	内部枚举类型就是为gender赋值的
	private enum Gender {GIRL,BOY}
//	role赋值的
	private enum Role {ADMIN,NORMAL,SUPERADMIN,QISHOU}
	...

22.2注解

是代码中的一种特殊标记,使用程序去读取代码中的注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//	@interface声明注解
//	注解中只有属性
@Retention(RetentionPolicy.RUNTIME)//运行期注解
@Target({ElementType.TYPE/*类注解*/,ElementType.FIELD/*属性注解*/,
	ElementType.METHOD/*方法注解*/,ElementType.PARAMETER/*参数注解*/})
public @interface MyAnnotation {

//	属性
	String value();
	String name() default "tom";
	String[] arr();
}
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@interface Table {
	String name();
}

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@interface Field {
	String name();
}

//	根据数据库中的Users表创建的 表中有name字段
@Table(name="emps")
class Users {
	
	@Field(name="name")
	private String name;
}

public class Test02 {

	public static void main(String[] args) throws Exception {
//		加载类对象
		Class<?> forName = Class.forName("com.qf.test.Users");
		
		
//		获取对应表的数据 获取的注解
		Table table = (Table) forName.getDeclaredAnnotation(Table.class);
		
		System.out.println(table);
		System.out.println(table.name());
		
//		sql语句
		String sql = "select * from " + table.name();
		System.out.println(sql);
	}
}

文章来源:https://blog.csdn.net/CHiN_951/article/details/135277737
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。