gpt4 book ai didi

java - 方法中的参数从枚举请求常量 - 这些方法如何只接受特定常量?

转载 作者:行者123 更新时间:2023-12-01 16:15:06 25 4
gpt4 key购买 nike

我本来想让你们“破译”我的代码并帮助我解决我的问题,但后来我意识到你们都喜欢它尽可能简单明了,所以我们开始(笑)...

我有以下 java 文件:

  • 具有多个常量的枚举,用作加载程序或执行该程序任务的“属性设置”
  • 带有方法和变量的常规旧类
  • 一些请求其他方法的方法
  • 可以引用的方法具有支持枚举中特定常量的参数。

枚举预览

enum Properties {

SETTING_ENABLE_CONSOLE,
SETTING_ENABLE_GUI,

TASK_SCANNER_CONSOLE,
TASK_SCANNER_GUI,

}


常规旧类的预览 - 还包含上述方法

class RegularClass {

/* THESE ARE THE METHODS THAT ONLY TAKE SPECIFIED CONSTANTS FROM PROPERTIES AS DEFINED BY THE METHOD. */

static void setSetting (Properties SETTING_) { /* SET A PROPERTY!!! */ }
static void startTask (Properties TASK_ { /* START A TASK... */ }

static void loadProgram () {

/* THESE ARE THE METHODS THAT ARE ONLY ABLE TO PROVIDE SPECIFIC CONSTANTS FROM PROPERTIES. */

RegularClass.setSetting(Properties.SETTING_ENABLE_CONSOLE);
RegularClass.startTask(Properties.TASK_SCANNER_CONSOLE);
}

}


大问题

如何构造 setSetting(SETTING_)startTask(TASK_) 以仅获取常量

以方法 SETTING_

的参数中提供的前缀开头的属性枚举

TASK_ 没有需要运行的方法? (eclipse或者idea等ide)...


我怎样才能以最好的方式实现这个系统?最好我想利用一种新方法,该方法期望由所需参数定义的结果 - 但在执行任务或应用设置之前。 (即;当编码器在其他地方甚至同一位置的类中引用诸如 setSetting(SETTING_) 之类的方法时。)

坦白说,我不只是复制和粘贴,我喜欢制作我自己的版本。如果它是如此伟大和简单,我可能会……所以你知道。话虽这么说,我确实要求你保持简单,保持简单明了,不要做得太紧,我无法从中改进! (我也在用这个测试我的知识)

感谢您抽出时间,我非常感激。

最佳答案

你不知道。当然,您可以添加一些运行时输入验证,但这不会添加任何编译时限制。你真的应该分开你的枚举。即使您对无效输入抛出异常,我认为大多数用户/维护者也会感到非常惊讶或至少有点恼火。这可能被认为违反了最小惊讶原则,并且很可能违反了单一责任原则

没有充分的理由将这些常量保留在同一个枚举中。

关于java - 方法中的参数从枚举请求常量 - 这些方法如何只接受特定常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62420043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com