热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

枚举类相关的实现方式及特点

本文介绍了枚举类的相关知识,包括枚举类的定义方式、实现方式以及枚举值的特点。通过对EvalResultTest和Color两个枚举类的示例进行分析,说明了枚举类是如何通过Class在内部实现的,以及枚举值都是publicstaticfinal的特点。同时,提供了一个相关链接供进一步了解枚举类的使用。

 

 

1 public enum EvalResultTest {
2
3 // 默认是无参数构造函数,可以加(),也可以不加
4 True(),
5 False(),
6 UNKNOWN,
7 EXCEPTION();
8
9 //public abstract String status(boolean runningNot);
10
11 private int a;
12
13 // 如果定义了这个有参数构造函数,那上述枚举值定义只能是带(),且传入参数
14 // private EvalResultTest(int a) {
15 // this.a = a;
16 // }
17 }

 

enum Color
{
RED, GREEN, BLUE;
}

每个枚举都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的。

以上的枚举类 Color 转化在内部类实现:https://www.runoob.com/java/java-enum.html

1 class Color
2 {
3 public static final Color RED = new Color();
4 public static final Color BLUE = new Color();
5 public static final Color GREEN = new Color();
6 }

 

public enum CurResult {
/**
* 命中
*/
True() { // 内部类
@Override
public String status(boolean runningNot) {
return runningNot ? "0" : "1";
}
@Override
public String toString() {
return "True";
}
},
/**
* 不命中
*/
False() {
@Override
public String status(boolean runningNot) {
return runningNot ? "1" : "0";
}
@Override
public String toString() {
return "False";
}
},
/**
* 未知
*
*/
Unknown() {
@Override
public String status(boolean runningNot) {
return "2";
}
@Override
public String toString() {
return "Unknown";
}
},
/**
* 异常
*/
Exception() {
@Override
public String status(boolean runningNot) {
return "3";
}
@Override
public String toString() {
return "Exception";
}
},
/**
* 超阀值
*/
Overflow() {
@Override
public String status(boolean runningNot) {
return "4";
}
@Override
public String toString() {
return "Overflow";
}
},
/**
* 被降级
*/
Downgrade() {
@Override
public String status(boolean runningNot) {
return "5";
}
@Override
public String toString() {
return "Downgrade";
}
},
/**
* 测试相关命中
*/
Test_True() {
@Override
public String status(boolean runningNot) {
return runningNot ? "0" : "1";
}
@Override
public String toString() {
return "Test_True";
}
},
MISSING() {
@Override
public String status(boolean runningNot) {
return "6";
}
@Override
public String toString() {
return "MISSING";
}
};
public static CurResult valueOf(boolean status) {
return status ? True : False;
}
public abstract String status(boolean runningNot);
}

 


原文链接:https://www.cnblogs.com/wxdlut/p/15491060.html



推荐阅读
  • TensorFlow Lite在移动设备上的部署实践与优化笔记
    近期在探索如何将服务器端的模型迁移到移动设备上,并记录了一些关键问题和解决方案。本文假设读者具备以下基础知识:了解TensorFlow的计算图(Graph)、图定义(GraphDef)和元图定义(MetaGraphDef)。此外,文中还详细介绍了模型转换、性能优化和资源管理等方面的实践经验,为开发者提供有价值的参考。 ... [详细]
  • 分页机制详解:实现高效数据加载与展示
    在数据集合庞大且需要部分展示的情况下,分页机制能够有效提升用户体验和系统性能。通过合理划分和组织数据,确保每个页面的数据量适中,便于用户理解和操作。该机制特别适用于数据量大、不适合一次性加载全部内容的场景,如电子商务网站的商品列表、社交媒体的信息流等。分页不仅提高了页面加载速度,还优化了数据展示的逻辑性和可读性。 ... [详细]
  • 在C#中开发MP3播放器时,我正在考虑如何高效存储元数据以便快速检索。选择合适的数据结构,如字典或数组,对于优化性能至关重要。字典能够提供快速的键值对查找,而数组则在连续存储和遍历方面表现优异。根据具体需求,合理选择数据结构将显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 在Java编程中,若需实现两个整数(例如2和3)相除并保留两位小数的结果,可以通过精确计算方法来达到预期效果。具体而言,可以利用BigDecimal类进行高精度运算,确保2除以3的结果准确显示为0.66。此外,还可以通过格式化输出来控制小数位数,确保最终结果符合要求。 ... [详细]
  • Linux 信号处理全面解析(第六篇)
    本文深入探讨了信号及其来源。信号本质上是对中断机制的软件层面模拟,从原理上看,进程接收到信号与处理器接收到中断请求类似。信号具有异步特性,能够在进程执行过程中随时触发,从而中断当前操作并执行相应的处理程序。文章详细分析了信号的生成、传递和处理机制,并讨论了常见的信号类型及其应用场景。此外,还介绍了如何在 Linux 系统中使用信号进行进程间通信和错误处理,为开发者提供了实用的技术指导。 ... [详细]
  • 本文介绍了Android动画的基本概念及其主要类型。Android动画主要包括三种形式:视图动画(也称为补间动画或Tween动画),主要通过改变视图的属性来实现动态效果;帧动画,通过顺序播放一系列预定义的图像来模拟动画效果;以及属性动画,通过对对象的属性进行平滑过渡来创建更加复杂的动画效果。每种类型的动画都有其独特的应用场景和实现方式,开发者可以根据具体需求选择合适的动画类型。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 在Spring与Ibatis集成的环境中,通过Spring AOP配置事务管理至服务层。当在一个服务方法中引入自定义多线程时,发现事务管理功能失效。若不使用多线程,事务管理则能正常工作。本文深入分析了这一现象背后的潜在风险,并探讨了可能的解决方案,以确保事务一致性和线程安全。 ... [详细]
  • 深入解析:JavaScript中的表达式与语句有何不同
    深入解析:JavaScript中的表达式与语句有何不同 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • 在C#和ASP.NET开发中,TypeParse 是一个非常实用的类型解析扩展方法库,提供了简便的类型转换功能。例如,通过 `var int1 = "12".TryToInt();` 可以将字符串安全地转换为整数,如果转换失败则返回0。此外,还支持更多复杂的类型转换场景,如 `var int2 = "22x".TryToInt();` 和 `var int3 = "3.14".TryToInt();`,确保了代码的健壮性和易用性。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 首篇待优化改进的文章
    本文介绍了多种常用的矩阵类型及其生成方法,包括单位矩阵、全零矩阵、全1矩阵以及均匀分布的随机矩阵。此外,还探讨了生成随机Markov矩阵的技术,并详细解释了线性等分向量和对数等分向量的构建方式,以及矩阵对数运算的应用。这些内容为数值计算和数据处理提供了坚实的基础。 ... [详细]
author-avatar
KEN
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有