问题一:为什么当方法体只有一行时,独立存在的方法的必要性开始存疑?
为什么当方法体只有一行时,独立存在的方法的必要性开始存疑?
参考回答:
当方法体只有一行时,如果这个方法的引用仅存在一处,那么将这一行代码直接放在主干代码上可能更直观,避免了来回跳转的代码阅读障碍。但这也取决于具体情况,如果未来有扩展逻辑分支的可能性,或者该方法会在多处被引用,那么独立存在的方法仍然是有必要的。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625252
问题二:在哪些情况下,即使方法体只有一行,也需要独立出来?
在哪些情况下,即使方法体只有一行,也需要独立出来?
参考回答:
即使方法体只有一行,也需要独立出来的情况包括:
未来除了一种逻辑分支外,还会扩展其他分支,并且有被扩展的可能;
虽然还是一种逻辑分支,但是判断的内容变长了,跟上下文和调用状态有关;
虽然还是一种逻辑分支,但是逻辑总在调整;
一处定义,多点引用。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625253
问题三:当传入的字符有多种可能性时,应该如何处理以避免定义一堆常量?
当传入的字符有多种可能性时,应该如何处理以避免定义一堆常量?
参考回答:
应该考虑使用枚举(Enum)来组织这些常量。可以定义两组枚举值,一组表示入参的所有可能(如SaleTypeStrEnum),另一组表示出参的所有可能(如SaleTypeIntEnum)。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625254
问题四:为什么需要补充枚举的getByName方法?
为什么需要补充枚举的getByName方法?
参考回答:
为了方便从传入的字符串映射到对应的枚举值。原始的枚举值是通过name()方法获取枚举的名称,而getByName方法则允许通过名称查找枚举值。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625255
问题五:为什么直接使用枚举的name()方法进行映射效率较低?
为什么直接使用枚举的name()方法进行映射效率较低?
参考回答:
直接使用枚举的name()方法进行映射需要在每个枚举值上遍历,时间复杂度为O(n)。为了提高效率,可以使用空间换时间的方法,预先将枚举名称映射到枚举值的映射关系存储在内存中。
关于本问题的更多回答可点击原文查看: