gpt4 book ai didi

java - 构造返回结果枚举

转载 作者:行者123 更新时间:2023-12-02 08:41:54 25 4
gpt4 key购买 nike

我正在寻找一种能够以高效/优雅的方式构造java枚举的方法。这些枚举保存返回结果。

  • 有“删除项目”(枚举:OK、DOESNT_EXIST、ACCESS_DENIED..)或创建项目(OK、ALREADY_EXISTS、ACCESS_DENIED..)、changeItem(OK、INVALID_PARAMETER、INVALID_CLASS、ACCESS_DENIED)等功能
  • 如您所见,它们都有自己的和共享的枚举。因此,一些枚举应该在每个返回函数中实现(OK,ACCESS_DENIED),而其他枚举则是独占的(DOESNT_EXIST,ALREADY_EXISTS ...)。
  • 此外,还有像changeOrCreate这样的复杂函数,如果项目不存在,则可以在其中创建项目,否则可以进行更改(枚举:所有createItem枚举,所有changeItem枚举)。

基本上我可以

  1. 为每个函数构建不同的枚举(createItemResult、changeItemResult..)或
  2. 将它们全部放入一个 RESULT 枚举类中。

但无论我选择什么,我都永远无法完成所有这些

  • 当像“changeOrCreate”这样的复杂函数失败时,我想知道返回的枚举“ACCESS_DENIED”是由创建还是更改引起的。
  • 我非常希望任何函数的调用者获得相同的 enumType
  • (我希望函数 no 能够返回非法枚举。例如:createUser 不应该有 DOESNT_EXIST)

有什么想法吗?或者返回类型枚举有什么约定吗?

更新:我不能使用(非标准)异常的原因是我必须提供一个 API,并且要求不能抛出任何异常。

最佳答案

When a complex function like "changeOrCreate" fails, I want to know whether the returned enum "ACCESS_DENIED" was caused by the creation or the change.

然后将它们命名为 CREATE_DENIEDCHANGE_DENIED 或类似名称。

I would highly prefer the caller of any function getting the same enumType

所以执行您建议的一个 RESULT 枚举类。

I would prefer the functions no to be able to return illegal enums.

由于您正在编写函数,因此您可以控制它返回哪个枚举,即您确保 createUser 永远不会返回 DOESNT_EXIST

关于java - 构造返回结果枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61330089/

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