我有以下负载实施。4键值HashMap?阵列?最佳方法?
validateParameter(field_name, field_type, field_validationMessage, visibleBoolean);
代替一排具有的这些50-60的,有某种形式的嵌套散列映射/四维阵列的余可以用于构建它,并循环通过它们?
做这样的事情最好的方法是什么?
谢谢!
编辑:有4个项目。
我有以下负载实施。4键值HashMap?阵列?最佳方法?
validateParameter(field_name, field_type, field_validationMessage, visibleBoolean);
代替一排具有的这些50-60的,有某种形式的嵌套散列映射/四维阵列的余可以用于构建它,并循环通过它们?
做这样的事情最好的方法是什么?
谢谢!
编辑:有4个项目。
你可以做的是创建一个新的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)));
注意:这只会只要这三个或四个值都可以工作一起存放。例如,如果您需要将所有值分开存储,无论出于何种原因,那么这将不起作用。只有在不影响程序功能的情况下才能将它们组合在一起,这才能起作用。
这是一个快速的头脑风暴。不知道它是否会起作用,但按照这些思路思考,我相信它应该为你工作。
您可能需要做一些修改,但是这应该让你在正确的方向
附:对不起,这是如此罗嗦,只是试图尽可能多的细节。
'类字段'是如此错误。 :)) –
@BheshGurung你是什么意思?检查我的编辑。应该修复吗?无论问题是什么? –
由于多种原因,这仍然是不可编译的。目前尚不清楚您的完整建议是什么,或者这对OP有何帮助。 – Radiodef
其他答案很接近,但在这种情况下您不需要钥匙。
只需定义一个类来包含您的三个字段。创建该类的List或数组。循环调用每个组合的方法的列表或数组。
我使用的方法是创建一个POJO(或一些POJO)来将值存储为属性并通过属性验证属性。
因为很多时候你会对每个属性类型进行相同的验证(例如日期和数字可以通过范围验证,字符串可以验证以确保它们不为空或空等),你可以使用反射迭代这些属性(甚至更好,使用注释)。
如果您需要在POJO级别上进行验证,您仍然可以通过合成来重用这些属性级别的验证器,而添加更多特定的验证则您将在抽象级别上升(上升意味着基本属性 - > pojos - >包含其他pojos的pojos - >等)。
将几个基本类型作为参数传递给同一个方法并不好,因为参数本身并没有多大意义,您可以在方法调用中轻松地交换两个相同类型的参数。
你究竟在努力实现什么?你需要每次使用不同的变量组合调用相同的方法? –
@TimB Yea - 每次使用4个不同参数调用ValidateParameter方法约50次。 –
这取决于这些都来自哪里。如果你有50-60的任何事情,那么他们应该已经在数组或其他数据结构中。 – Radiodef