首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我怎样才能让一个方法在枚举类中使用"when“呢?

要让一个方法在枚举类中使用"when",需要按照以下步骤进行操作:

  1. 在枚举类中定义一个方法,该方法可以是静态方法或实例方法,具体根据需求而定。
  2. 在方法中使用"when"关键字来匹配不同的枚举值,并执行相应的逻辑。
  3. 在枚举类中的每个枚举值后面使用"->"符号,将对应的方法与该枚举值关联起来。

下面是一个示例代码:

代码语言:txt
复制
public enum MyEnum {
    VALUE1 {
        @Override
        public void doSomething() {
            // 执行与VALUE1相关的逻辑
        }
    },
    VALUE2 {
        @Override
        public void doSomething() {
            // 执行与VALUE2相关的逻辑
        }
    },
    VALUE3 {
        @Override
        public void doSomething() {
            // 执行与VALUE3相关的逻辑
        }
    };

    public abstract void doSomething();

    public static void main(String[] args) {
        MyEnum value = MyEnum.VALUE2;
        value.doSomething(); // 调用doSomething方法,执行与VALUE2相关的逻辑
    }
}

在上述示例中,我们定义了一个枚举类MyEnum,其中包含了三个枚举值VALUE1VALUE2VALUE3。每个枚举值都重写了doSomething方法,并在方法中实现了与该枚举值相关的逻辑。

main方法中,我们创建了一个MyEnum类型的变量value,并将其赋值为MyEnum.VALUE2。然后,我们通过调用value.doSomething()来执行与VALUE2相关的逻辑。

这样,我们就可以在枚举类中使用"when"来实现不同枚举值的逻辑处理了。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
相关搜索:如何使用我在html页面中创建的枚举类?在类构造函数中使用枚举,类中的方法无法识别引用变量我怎样才能让用户输入各种各样的东西,并让它们在一个numpy数组中工作呢?如何让我的方法在另一个方法中搜索变量?我怎样才能动态地添加一个方法在Ruby on Rails的Math类?我可以在父类中使用一个枚举作为DiscriminatorType和列吗?尝试让eventHandler在自己的类中访问另一个类的方法如果我正在使用导航抽屉,如何让Activity调用Fragment类中的方法在OOP中,有没有办法在一个方法中使用另一个方法呢?我可以在一个类中包含一个模块方法吗?为什么我不能像创建普通枚举一样在构造函数中创建一个可以为空的枚举呢?在Wicket中,我怎样才能在数据视图表上的"mouseover“事件中使用鼠标呢?有没有什么办法可以让我在android中修改我的代码来重新使用图标呢?当一个开关的属性在FutureBuilder中改变时,我怎样才能正确地“动画”开关呢?在PHP中为我的类方法提供一个默认对象在带有Postgres的Elixir中,我如何让数据库返回未使用的枚举值?我的一个方法使用了在另一个方法中返回的变量。我无法让第二个方法打印或计算为什么在class方法中创建一个类的实例会改变'self‘参数呢?为什么我可以在另一个单独的类中使用在一个类中定义的方法?如果我在Ruby中定义一个方法,它是否属于任何类?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JVM系列——运行时数据区

具体说一说一下每个区域: Method Area(方法区) 方法区是各个线程共享的内存区域,虚拟机启动时创建。用于存储已被虚拟机加载的信息、常量、静态变量、即时编译器编译后的代码等数据。...强调两点: 方法JDK 8就是Metaspace,JDK6或7就是Perm Space Run-Time Constant Pool Class文件除了有的版本、字段、方法、接口等描述信息外...此时回看装载阶段,会在JVM堆中生成一个代表这个的java.lang.Class对象,作为对方法这些数据的访问入口。...肯定是Use使用咯,不用的话这样折腾来折腾去有什么意义?那怎样才能使用到?换句话说里面内容怎样才能被执行?...一个线程可以执行多少个方法?这样的关系怎么维护? 虚拟机栈是一个线程执行的区域,保存着一个线程中方法的调用状态。

37350

Kotlin Vocabulary | 枚举和 R8 编译器

,我们都去调用另一个方法。...这个数组是从哪来的? 而且这个数组存储一个被生成的文件。这个文件是从哪来的? 这里究竟发生了什么?...这个里面有一个存储映射信息的数组: $EnumSwitchMapping$0,接下来则是一些执行映射操作的静态代码。 示例是只有一个 when 语句时的情况。...但如果我们写了更多的 when 语句,每个 when 语句就会生成一个对应的数组,即使这些 when 语句都在使用一个枚举也一样。...虽然所有这些开销没什么大不了的,但是却也意味着,您不知情的时候,会生成一个,而且其中还包含了一些数组,这些都会加载和实例化消耗更多的时间。

1K50
  • salesforce零基础学习(一百零一)如何了解你的代码得运行上下文

    ,会以为一个发亮稀少,或者表情严肃的程序狗。...怎样才能判断当前这个方法运行的上下文是trigger里面还是batch里面啊。...Quiddity Quiddity是salesforce winter21新加的枚举,apex如果使用,api version需要50及以上。我们通过上面的连接可以看到这个枚举包含的枚举元素。...还有很多其他的枚举元素用于不同的场景,感兴趣的自行查看,那么如何在apex获取当前的枚举,更简单了。只需要通过 Request获取当前的请求,然后调getQuiddity即可。...通过上面的博客链接,我们可以对这个功能做更好的拓展,做一个功能阀,保证我们的代码只部分场景运行。可扩展性很多,大家可以基于自身的业务去进行使用

    66410

    Kotlin入门(15)独门秘笈之特殊

    嵌套 一个可以单独的代码文件定义,也可以一个内部定义,后一种情况叫做嵌套,意即A嵌套在B之中。乍看过去,这个嵌套的定义似乎与Java的嵌套是一样的,但其实有所差别。...,得嵌套名前面添加外部类的名,相当于把这个嵌套作为外部类的静态对象使用。...可是枚举类型实际上是一种,开发者代码创建enum类型时,编译器会自动生成一个对应的,并且该类继承自java.lang.Enum。...方法,用于打印数据对象中保存的所有字段值; 功能如此强大的数据,犹如葵花宝典,你功力倍增。...那么如果某个泛型函数内部定义,即变成了这个的成员方法,又该如何定义它

    1.3K30

    Kotlin学习日志(五)与对象

    2.3 伴生对象 伴生对象这个是Kotlin中有的,Java没有,什么是伴生对象,你可以把它理解为“影子”,把当做一个人,这个人可以有很多房子,但是人只有一个,影子也只有一个。...抽象方法没有具体的函数体,故而外部无法直接声明抽象的实例,只有子类继承时重写方法,方可使用该子类正常声明对象实例。...,然后实现该接口的具体重写这几个方法,从而间接实现类似C++多重继承的功能。...四、特殊 4.1 嵌套 一个可以单独的代码文件定义,也可以一个内部定义,后一种情况叫作嵌套,即A嵌套在B之中,听起来和Java的嵌套是一样的,但其实有所差别,Java的嵌套允许访问外部类的成员...Android实际开发,我们经常需要定义一些实体来存放返回的数据,Java中一个数据的通常完成以下工作: (1)定义实体的每个字段,以及对字段进行初始赋值的构造函数。

    1.1K20

    Kotlin Vocabulary | 密封 sealed class

    枚举类型的每个值只允许有一个实例,同时枚举也无法为每个类型添加额外信息,例如,您无法为枚举的 "Error" 添加相关的 Exception 类型数据。...当然也可以使用一个抽象然后一些继承它,这样就可以随意扩展,但这会失去枚举所带来的有限集合的优势。...子类可以是任意的: 数据、Kotlin 对象、普通的,甚至也可以是另一个密封。但不同于抽象的是,您必须把层级声明同一文件,或者嵌套在的内部。...使用 when 语句处理密封时,如果没有覆盖所有情况,可以编译器给我们一个错误提示。...Result 是一个抽象,并且包含两个构造方法: 一个私有的默认构造方法 一个合成构造方法,只有 Kotlin 编译器可以使用 这意味着其他的无法直接调用密封的构造方法

    1.2K10

    技术团队如何高效落地代码CR

    统一团队编码规范 实际的代码CR过程,经验丰富的老司机分别会从命名、代码结构设计、程序性能等方面进行分析。其实同样一个需求,100个程序员来做,写出来的代码可能有100种样子,觉得这很正常。...如果有这样的业务场景,你定义了一个订单的DTO,其中有个字段是订单的审核状态,假设有待审核、审核通过、审核不通过三种状态,我们通过定义枚举的方式来表示不同的状态。...这里的inspectStatus分别对应枚举的三个状态属性。大家觉得下面的代码有什么问题?...遇到这种情况我们可以在审核状态字段的注释上面加上一个@link,可以直接链接到对应的状态枚举,这样后来维护业务的同事可以通过实体直接查看到订单的各个审核状态,总比自己无头苍蝇的工程找或者问其他组内同事来的效率高...因此我们在编写代码的时候不仅要考量如何实现当前的需求,也要想着如果未来别人来维护写的代码,那么怎样才能让后续维护的同学更好更快的掌握业务逻辑。

    1.4K20

    开发有效地 Java微服务需要Effective Java

    这些东西很大程度上独立于我们使用的框架。...但是你怎样才能做得更好呢假设您可以世界上最好的Java开发人员向您解释他们如何回答这些问题?...那么微服务在过去两年的职业生涯一直使用Spring Boot和基于Grails的微服务。...所有对象的通用方法——处理Java对象的ABC。 和接口——JavaOOP实践的良好概述。 泛型——深入研究泛型和多态性。 枚举和注释——解释语言中经常被误解和未充分使用的特性。...举个例子: 44、喜欢使用标准的功能接口。在这里,我们深入了解了Java的功能接口以及围绕它们的使用的最佳实践。 Java 8一个有趣的新特性,认为它没有得到足够广泛的使用和理解。

    41820

    从点滴基础探究Kotlin的独特魅力

    也没有对磁盘上源文件的布局强加任何限制. ③ 因为每个代码都很小,所以kotlin建议把众多放在一个.kt文件即可. 8 表示和处理选择:枚举和"when" 强调: kotlin中使用"when...fun rgb() = (r * 256 + g) * 256 + b // 给枚举定义一个方法 } 说明: ① 枚举常量声明的时候,必须提供常量的属性值. ② 这个例子展示了 kotlin...唯一需要使用分号的地方:如果在枚举定义任何方法,就要使用分号把枚举常量列表和方法定义分开....使用"when"处理枚举 fun getMnemonic(color:Color) = //直接返回一个When表达式 when(color){ // 如果颜色和枚举常量相等就返回对应的字符串...变量名称前加上 前缀 或者 用{ }包围一个表达式,来把值注入到字符串.③ 值对象kotlin简洁的方式表示.④ kotlin 的 if 是带返回值的表达式.⑤ when 表达式替代了

    2.7K30

    面向对象之this指针与枚举类型

    this指针与枚举类型 1.this指针 相信坐的很多人,都在学Python,对于Python来说有self,类比到C++中就是this指针,那么下面一起来深入分析this指针使用!...(2)this作用域是内部,当在的非静态成员函数访问的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。...其次,this指针的使用: (1)的非静态成员函数返回对象本身的时候,直接使用 return *this。 (2)当参数与成员变量名相同时,如this->n = n (不能写成n = n)。...2.枚举类型 有时我们希望某些常量只中有效。由于#define 定义的宏常量是全局的,不能达到目的,于是想到实用const 修饰数据成员来实现。...SIZE(size) // 构造函数的定义 { } A a(100); // 对象 a 的 SIZE 值为 100 A b(200); // 对象 b 的 SIZE 值为 200 怎样才能建立整个中都恒定的常量

    1.2K10

    屎一样的代码命名,心态崩了。。。

    前段时间,项目组新来的一个实习生也经常在 Code Review 因为变量命名不规范而被 “diss”,这想到自己刚到公司写代码那会的日子。...咱们需要先搞懂为什么要重视编程的命名这一行为,它对于我们的编码工作有着什么意义。 为什么命名很重要? 这是因为 好的命名即是注释,别人一看到你的命名就知道你的变量、方法或者是做什么的!...、常量、枚举名称需要使用蛇形命名法(snake_case) 蛇形命名法,各个单词之间通过下划线“_”连接,比如should_get_200_status_code_when_request_is_valid...2、测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case),比如should_get_200_status_code_when_request_is_valid、CLIENT_CONNECT_SERVER_FAILURE...日常编码过程,我们需要谨记常见命名规范比如名需要使用大驼峰命名法、不要使用拼音,更不要使用中文......。

    67510

    你知道几种单例模式?

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、是代码设计经验的总结。使用设计模式是为了可重用代码、代码更容易被他人理解、保证代码可靠性。...通俗的说,即一个只负责一项职责。 3 设计模式的分类 GOF设计模式分类:23种 创建型设计模式: 对的实例化过程进行了抽象,能够将软件模块对象的创建和对象的使用分离。...比如在某个服务器程序,该服务器的配置信息存放在一个文件,这些配置数据由一个单例对象统一读取,然后服务进程的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了复杂环境下的配置管理。...,那么咱们就分析一下造成内存泄漏的原因,如上面代码,该单例模式context是强引用,并且被static的变量instance持有,因为java静态变量被装载的时候分配内存,在被卸载的时候销毁...那么当我一个Activity或者服务广播通过LazySingleton.getInstance(BaseActivity.this);获取单例并使用, 由于LazySingleton的创建引用了Activity

    38140

    【python自动化】七月PytestAutoApi开源框架学习笔记(一)

    如果在函数定义同时使用 *args 和 **kwargs,则表示函数将接收任意数量的位置参数和关键字参数。 如果在函数定义参数前加一个单星号 *,表示将所有的位置参数收集到一个元组。...如果在函数定义参数前加两个星号 **,表示将所有的关键字参数收集到一个字典。如果同时使用 * 和 **,则表示将位置参数收集到一个元组,关键字参数收集到一个字典。...python的@property Python ,@property 装饰器用于将一个方法转化为只读属性,的调用者可以像访问属性一样调用该方法,而无需显式地调用方法名。... Python 定义的函数可以被定义为三种不同类型的方法:staticmethod、classmethod 和普通方法(也称为实例方法)。...关于缓存 的问题: 一个文件的内容直接读取到python的缓存,从而避免频繁的IO操作,想知道python可以有多大的缓存,保证读取的文件数据不丢失 Python 语言没有直接限制缓存大小的参数

    35610

    玩转Mybatis的类型转换器TypeHandler

    2.2 EnumOrdinalTypeHandler 我们发现TypeHandler有一个实现EnumOrdinalTypeHandler。字面意思是可以通过枚举的序号来处理类型。 ?...我们还拿枚举作为例子,然后模仿上面的两种TypeHandler。还是拿开始的例子来说通常个人比较喜欢这么定义枚举: ? 通过继承BaseTypeHandler实现该抽象的3个钩子方法就行了: ?...TypeHandler 实现写好了,那么如何其发挥作用?我们接着往下走。 2.5 TypeHandler的核心要点 TypeHandler作用是javaType和jdbcType相互转换。...然后是插入、更新语句中使用。它们都是相同的,这里只举一个插入例子。 ? 如果注册了别名上面的都可以使用别名来减少冗长的全限定名。...如果你使用mybatis-spring组件,可以SqlSessionFactoryBean的setTypeHandlersPackage方法配置typeHandler的集中包路径,那么框架将会自动扫描并注册他们

    4.1K20

    动态规划太难?这篇兑换钞票的故事助你通俗理解

    如果一个奇葩国家的钞票面额分别是1、5、11,那么我们凑出15的时候,贪心策略会出错: 15=1×11+4×1 (贪心策略使用了5张钞票) 15=3×5 (正确的策略,只用...那么,现在我们怎样才能避免鼠目寸光? 3 是谁 如果直接暴力枚举凑出w的方案,明显复杂度过高。太多种方法可以凑出w了,枚举它们的时间是不可承受的。我们现在来尝试找一下性质。 重新分析刚刚的例子。...当然是各种方案,cost值最低的那一个!...它比起贪心策略,会分别算出取1、5、11的代价,从而做出一个正确决策,这样就避免掉了“鼠目寸光”! 它与暴力的区别在哪里?我们的暴力枚举了“使用的硬币”,然而这属于冗余信息。...引入这两个概念之后,我们如何判断一个问题能否使用DP解决? 能将大问题拆成几个小问题,且满足无后效性、最优子结构性质。

    85031

    Kotlin实战【三】表示与选择

    前言 本章我们将学习怎么样Kotlin通过枚举when实现表示与选择。...与java相同,枚举可以声明属性和方法 1.2 带属性的枚举 先看看java的代码: public enum Color { RED(255, 0, 0), //当每个变量创建的时候,指定属性值...这个例子展示了Kotlin语法唯一需要分号的地方:枚举如果你定义任何方法,分号区分了枚举常量列表和方法声明。...接下来我们看一下枚举的处理: 二 、表示与选择之When 2.1 使用when”来处理枚举 接下来我们使用when选择枚举,我们输入一个颜色,返回对应的一个字符串 fun getMnemonic(color...在这个例子,代码块中最后最后一个表达式作为结果。如果你想在例子函数中加日志,你可以代码块完成,并用最后一个值返回。

    65410

    JVM 学习笔记(一)

    (1)通过一个的全限定名获取定义此类的二进制字节流 (2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 (3)Java堆中生成一个代表这个的java.lang.Class对象,作为对方法这些数据的访问入口...(3)Java堆中生成一个代表这个的java.lang.Class对象,作为对方法这些数据的访问入口 说白了就是文件被装载器装载进来之后,的内容(比如变量,常量,方法,对象等这些数 据得要有个去处...值得说明的 (1)方法JDK 8就是Metaspace,JDK6或7就是Perm Space (2)Run-Time Constant Pool Class文件除了有的版本、字段、方法、...肯定是Use使用咯,不用的话这样折腾来折腾去 有什么意义?那怎样才能使用到?换句话说里面内容怎样才能被执行?...一个线程可以执行多少个方法?这样的关系怎么维护?   虚拟机栈是一个线程执行的区域,保存着一个线程中方法的调用状态。

    46420

    jvm总览-让我们从头开始,带官网解释

    )Java堆中生成一个代表这个的java.lang.Class对象,作为对方法这些数据的访问入口 3.2 链接(Link) 3.2.1 验证(Verify) 保证被加载的正确性 文件格式验证...(3)Java堆中生成一个代表这个的java.lang.Class对象,作为对方法这些数据的访问入口 说白了就是文件被装载器装载进来之后,的内容(比如变量,常量,方法,对象等这些数据得要有个去处...值得说明的 (1)方法JDK 8就是Metaspace,JDK6或7就是Perm Space (2)Run-Time Constant Pool Class文件除了有的版本、字段、方法...假如目前的阶段是初始化完成了,后续做啥?肯定是Use使用咯,不用的话这样折腾来折腾去有什么意义?那怎样才能使用到?换句话说里面内容怎样才能被执行?...一个线程可以执行多少个方法?这样的关系怎么维护? 虚拟机栈是一个线程执行的区域,保存着一个线程中方法的调用状态。

    42910

    重温《Framework Design Guidelines》

    常见被违反的规范 今年升级一个核心代码从很久以前的代码改写过来的软件,各种不符合C#代码规范的代码感到难以维护;去年系统工程师退休前留给我们的一个代码更是受到会心一击。...2.2 属性 要在下列情况中使用方法而不要使用属性 该操作比字段访问要慢记个数量级。 该操作返回一个数组。 这条规范有很多种情况,只列出常见的两种容易犯错的情况。...第一种情况WPF尤其常见,因为对XAML来说可以用于绑定的属性好用很多,所以很多应该是方法的地方都使用属性实现。...现在处理的遗留代码既使用数组作为属性,又可Get和Set,毕竟是从很久以前一路修改过来的,当时的开发者应该也没想到这些代码现在会人这么困扰吧。...2.6 事件 要用受保护的虚方法来触发事件。 要让触发事件的受保护的方法一个参数,该参数的类型为事件参数,该参数的名字应该为e。

    1.3K41

    比较java枚举成员使用equal还是==

    Java 必知必会 第 6 篇 (精挑 Stack Overflowjava中排名前100的问题 懂得这些问题的答案帮你解决80%开发问题 ) 问题 知道Java枚举会被编译成一个包含私有构造参数和一堆静态方法...() 之间的区别,但是仍然觉得很困惑,哪一个操作符才是使用的。...答案是肯定的,因为枚举有着严格的实例化控制,所以你可以用 == 去做比较符,这个用法,官方文档也有明确的说明。 JLS 8.9 Enums 一个枚举类型除了定义的那些枚举常量外没有其他实例了。...试图明确地说明一种枚举类型是会导致编译期异常。枚举final clone方法确保枚举常量从不会被克隆,而且序列化机制会确保从不会因为反序列化而创造复制的实例。枚举类型的反射实例化也是被禁止的。...(equals()方法枚举一个final方法参数和返回结果时,很少调用父的equals()方法,因此是一种恒等的比较。) 什么时候 == 和 equals 不一样?

    2.2K20
    领券