我尝试创建一个静态实用工具方法,该方法只接受类A
的单个输入,其实例已被赋予了自己唯一的id
,并检索了boolean
描述某个特征是否适用于它们的值。没有模式来描述这种关系;如果没有公式,首先考虑的两个选项是包含所有真实static final int[]
的{{1}},或者包含"或"的字符串。 id
测试。是否还有其他更好的选择,或者使用其中一个优于其他选项?这项任务不是一件大事,但我希望能够让它变得简单易读。
以下是帮助您大致了解我的意思的示例:
||
我认为第二种更直观,但也更重复。任何建议都会非常感激。
答案 0 :(得分:0)
怎么样:
private static Integer[] validIds = {
A.instanceM.id, A.instanceZ.id, A.instanceL.id, A.instanceF.id, A.instanceP.id
};
public static boolean getHasCharacteristic3(A input) {
return Arrays.asList(validIds).contains(input.id)
}
如果您要经常调用它,您可以将所有ID存储在List中,而不是数组,这样您就不必将数组转换为List来使用contains List的方法。
请注意,如果将它保存在数组中,则它必须是整数数组而不是整数。
答案 1 :(得分:0)
第二个即使看起来很简单,如果你的validIds中的内容更多,代码也会不方便。对于该阵列中的每个值,您必须检查。如果内容的数量更多,则可能最终丢失一个或其他值。所以建议你应该像在第一个实现中那样使用for循环进行迭代