写一个Java枚举类的例子
时间: 2024-05-10 12:16:34 浏览: 10
下面是一个 Java 枚举类的例子:
```java
public enum DayOfWeek {
MONDAY("星期一"),
TUESDAY("星期二"),
WEDNESDAY("星期三"),
THURSDAY("星期四"),
FRIDAY("星期五"),
SATURDAY("星期六"),
SUNDAY("星期日");
private String chineseName;
DayOfWeek(String chineseName) {
this.chineseName = chineseName;
}
public String getChineseName() {
return chineseName;
}
}
```
这个枚举类表示一周的七天,每个枚举常量对应一个星期几。通过 `getChineseName()` 方法可以获取每个枚举常量对应的中文名称。
相关问题
java一个map存储格式的枚举类例子
以下是一个使用Map存储枚举值的Java示例代码:
```java
import java.util.HashMap;
import java.util.Map;
public class EnumMapExample {
enum Fruit {
APPLE, BANANA, ORANGE
}
public static void main(String[] args) {
Map<Fruit, String> fruitMap = new HashMap<>();
fruitMap.put(Fruit.APPLE, "red");
fruitMap.put(Fruit.BANANA, "yellow");
fruitMap.put(Fruit.ORANGE, "orange");
System.out.println("Color of APPLE is " + fruitMap.get(Fruit.APPLE));
System.out.println("Color of BANANA is " + fruitMap.get(Fruit.BANANA));
System.out.println("Color of ORANGE is " + fruitMap.get(Fruit.ORANGE));
}
}
```
在上面的代码中,首先定义了一个枚举类型`Fruit`,包含了三个枚举值:`APPLE`、`BANANA`和`ORANGE`。然后使用`HashMap`实例化了一个`fruitMap`对象,将每个枚举值和对应的颜色字符串存储在这个map中。最后通过调用`get()`方法获取每个枚举值对应的颜色,并输出结果。
输出结果如下:
```
Color of APPLE is red
Color of BANANA is yellow
Color of ORANGE is orange
```
java 写一个审批流的例子
审批流是常见的业务场景之一,下面我会提供一个简单的 Java 代码示例来实现基于角色的审批流程。
假设有一个请假申请的审批流程,包含以下角色:
- 员工(发起申请)
- 直接领导(审批)
- 部门领导(审批)
- 人事部门(最终审批)
请假申请包含以下信息:
- 申请人姓名
- 请假天数
- 请假事由
- 审批状态
我们可以定义一个 LeaveRequest 类来表示请假申请:
```java
public class LeaveRequest {
private String name;
private int days;
private String reason;
private ApprovalStatus status;
// 省略构造方法和 getter/setter 方法
}
```
其中,`ApprovalStatus` 是一个枚举类型,表示审批状态:
```java
public enum ApprovalStatus {
PENDING, // 待审批
APPROVED, // 已通过
REJECTED // 已拒绝
}
```
接下来,我们可以定义一个审批流程类 `ApprovalProcess`,其中包含一个 `processRequest` 方法,用于处理请假申请:
```java
public class ApprovalProcess {
public void processRequest(LeaveRequest request) {
// 1. 员工提交请假申请
System.out.println(request.getName() + "提交了请假申请,共" + request.getDays() + "天,请假事由:" + request.getReason());
// 2. 直接领导审批
if (request.getStatus() == ApprovalStatus.PENDING) {
System.out.println("直接领导审批中...");
request.setStatus(ApprovalStatus.APPROVED); // 直接通过
}
// 3. 部门领导审批
if (request.getStatus() == ApprovalStatus.APPROVED) {
System.out.println("部门领导审批中...");
request.setStatus(ApprovalStatus.PENDING); // 等待部门领导审批
}
// 4. 人事部门审批
if (request.getStatus() == ApprovalStatus.PENDING) {
System.out.println("人事部门审批中...");
request.setStatus(ApprovalStatus.APPROVED); // 通过最终审批
}
// 5. 审批结束
System.out.println("审批结束,申请结果为:" + request.getStatus().name());
}
}
```
在 `processRequest` 方法中,我们按照审批流程依次处理请假申请。首先判断申请的状态是否为 `PENDING`(待审批),如果是则交给直接领导审批,并将状态设置为 `APPROVED`(已通过)。如果直接领导审批通过,则交给部门领导审批,并将状态设置为 `PENDING`(等待部门领导审批)。最后,如果部门领导审批通过,则交给人事部门审批,并将状态设置为 `APPROVED`(已通过)。
最后,我们可以编写一个简单的测试程序,测试审批流程的处理:
```java
public static void main(String[] args) {
LeaveRequest request = new LeaveRequest("张三", 3, "回家探亲", ApprovalStatus.PENDING);
ApprovalProcess process = new ApprovalProcess();
process.processRequest(request);
}
```
运行测试程序,输出如下:
```
张三提交了请假申请,共3天,请假事由:回家探亲
直接领导审批中...
部门领导审批中...
人事部门审批中...
审批结束,申请结果为:APPROVED
```
以上就是一个简单的基于角色的审批流程的 Java 代码实现。实际业务场景中,审批流程会更加复杂,需要根据具体需求进行设计和实现。