我已经完成了以下大量工作。
validateParameter(field_name, field_type, field_validationMessage, visibleBoolean);
我是否可以使用某种形式的嵌套hashmap / 4d数组来构建它并循环遍历它们,而不是连续50-60个这样的数组?
这样做的最佳方法是什么?
谢谢!
编辑:有4个项目。答案 0 :(得分:1)
您可以做的是创建一个包含三个值的新Class
。 (类型,boolean
和名称,或第四个值(您没有列出它))。然后,在创建HashMap
时,您所要做的就是调用method
来获取您的三个值。这可能看起来更像是工作,但您只需要创建一个简单的loop
来完成所需的所有值。由于我不确切地知道你想要做什么,我所能做的就是提供一个我想要做的事情的例子。希望它适用于你的问题。
无论如何,创建Class
以保存您需要的三个(或四个)值。
例如,
Class Fields{
String field_name;
Integer field_type;
Boolean validationMessageVisible;
Fields(String name, Integer type, Boolean mv) {
// this.field_name = name;
this.field_type = type;
this.validationMessageVisible = mv;
}
然后将它们放在HashMap
中,有点像这样:
HashMap map = new HashMap<String, Triple>();
map.put(LOCAL STRING FOR NAME OF FIELD, new Field(new Integer(YOUR INTEGER),new Boolean(YOUR BOOLEAN)));
注意:只有这三个或四个值都可以存储在一起时,这才会起作用。例如,如果您因为任何原因需要单独存储所有值,那么这将不起作用。只有当它们可以组合在一起而不会影响程序的功能时,这才有效。
这是一个快速的头脑风暴。不确定它是否会起作用,但请按照这些思路思考,我相信它应该适合你。
您可能需要进行一些编辑,但这应该会让您朝着正确的方向前进
P.S。对不起因为它如此冗长,只是试图尽可能多地获取详细信息。
答案 1 :(得分:1)
另一个答案很接近,但在这种情况下你不需要钥匙。
只需定义一个包含三个字段的类即可。创建该类的列表或数组。遍历列表或数组,为每个组合调用方法。
答案 2 :(得分:1)
我使用的方法是创建一个POJO(或一些POJO)来将值存储为属性并按属性验证属性。
因为很多时候你会对每个属性类型进行相同的验证(例如,日期和数字可以通过范围验证,字符串可以被验证以确保它们不为空或空等),你可以只是迭代这些属性使用反射(甚至更好,使用注释)。
如果您需要在POJO级别进行验证,您仍然可以通过组合重用这些属性级验证器,而您在抽象级别中添加更多特定验证(上升意味着基本属性 - &gt; pojos - &gt; pojos包含其他pojos - &gt;等)。
将几个基本类型作为相同方法的参数传递并不好,因为参数本身并不多见,您可以在方法调用中轻易地交换两个相同类型的参数。