Java 泛型应用:使用泛型优化代码结构
@Data
@ApiModel(description = '授权')
@JsonIgnoreProperties(ignoreUnknown = true)
public class PolicyVO
/**
* 目录资源 path
*/
@ApiModelProperty(name = 'resources', notes = '目录资源、库表属、队列', required = true)
private List<T> resources;
/**
* 服务类型
*/
@ApiModelProperty(name = 'serviceType', notes = '服务类型: hdfs 目录, hive 数据, yarn 队列', required = true)
private String serviceType;
@Data
public static class Resource {
private Long id;
}
@Data
public static class ResourceHdfs extends Resource {
/**
* 存储信息id, t_quota_store.store_id
*/
@ApiModelProperty(name = 'id', notes = '存储信息id', required = true)
private Long id;
/**
* 存储绝对路径, t_quota_store.store_path
*/
@ApiModelProperty(name = 'path', notes = '存储信息绝对路径', required = true)
private String path;
}
@Data
public static class ResourceHive extends Resource {
@ApiModelProperty(name = 'id', notes = 'id', required = false)
private Long id;
@ApiModelProperty(name = 'database', notes = '数据库', required = true)
private String database;
@ApiModelProperty(name = 'tab', notes = '表', required = true)
private List<String> tab;
@ApiModelProperty(name = 'col', notes = '字段', required = true)
private List<String> col;
}
@Data
public static class ResourceYarn extends Resource {
/**
* 队列信息id, t_quota_queue.queue_id
*/
@ApiModelProperty(name = 'id', notes = '队列信息id', required = true)
private Long id;
/**
* 队列名称,t_quota_queue.queue_name
*/
@ApiModelProperty(name = 'queueName', notes = '队列名称', required = true)
private String queueName;
}
}
原文地址: https://www.cveoy.top/t/topic/qxST 著作权归作者所有。请勿转载和采集!