Java根据属性获取对象

Java 根据枚举属性获取对象

通过Map方式 values方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.example.datastream.enums;

import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

// lombok jar包
@Getter
public enum BusinessLine {
/**
* 运营管理,负责业绩,库存,收出房
* */
K1(1, "K1", "0001","001a"),

/**
* 营销运营,负责客源商机转换
* */
K2(2, "K2", "002","002a"),

/**
* 家装
* */
K3(3, "K3", "003","003a"),

/**
* 服务品质
* */
K4(4, "K4", "004","004a"),

/**
* 绩效,人力
* */
K5(5, "K5", "005","005a"),

/**
* 品质监察
* */
KQ(6, "KQ", "006","006a"),


OTHER(0, "其他", "000","000a");


private int index;

private String name;

private String pdManager;

private String dbManager;

// ---------------------------------------------------
/**
* 键值对方式
*/
private final static Map<String, BusinessLine> businessLines = Stream.of(values()).collect(Collectors.toMap(item -> item.getName(), Function.identity()));

public static BusinessLine getInstance(String name) {
return businessLines.get(name);
}

// --------------------------------------------------

BusinessLine(int index, String name, String pdManager,String dbManager) {
this.index = index;
this.name = name;
this.pdManager = pdManager;
this.dbManager = dbManager;
}

/**
* values方式
*/
public static BusinessLine getInstance(int index) {
return Stream.of(values()).filter(item -> item.index == index).findAny().orElse(null);
}

/**
* 枚举对象转list,获取枚举值列表
*/
public static List<Map<String, String>> toList() {
List<Map<String, String>> list = Lists.newArrayList();
for (BusinessLine item : BusinessLine.values()) {
Map<String, String> map = new HashMap<String, String>();
map.put("code", String.valueOf(item.getIndex()));
map.put("name", item.getName());
list.add(map);
}
return list;
}
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!