4键值哈希映射?大堆最佳方法



我要实现以下内容。

validateParameter(field_name, field_type, field_validationMessage, visibleBoolean);

有没有某种形式的嵌套hashmap/4d数组可以用来构建它并在其中循环?

做那样的事情最好的方法是什么?

谢谢!

编辑:是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)));

注意:只有当这三个或四个值都可以存储在一起时,这才有效。例如,无论出于何种原因,如果您需要单独存储所有值,那么这将不起作用。只有当它们可以组合在一起而不影响程序的功能时,这才会起作用。

这是一个快速的头脑风暴。不确定它是否有效,但从这些方面考虑,我相信它应该对你有效。

你可能需要做一些编辑,但这应该会让你朝着正确的方向

附言:很抱歉这么罗嗦,只是想尽可能多地了解细节。

另一个答案很接近,但在这种情况下不需要键。

只需定义一个类来包含您的三个字段。创建该类的列表或数组。在列表或数组上循环,为每个组合调用方法。

我使用的方法是创建一个POJO(或一些POJO),将值存储为属性并逐个属性验证。

由于很多时候每个属性类型都会有相同的验证(例如,日期和数字可以按范围验证,字符串可以验证以确保它们不是null或空的,等等),因此您可以使用反射(或者更好的是,使用注释)迭代这些属性。

如果你需要在POJO级别上进行验证,你仍然可以通过组合来重用这些属性级别的验证器,而你在抽象级别上添加了更具体的验证(向上意味着基本属性->pojos->包含其他pojos的pojos等等)。

将几个基本类型作为同一方法的参数传递是不好的,因为参数本身并不能说明什么,而且在方法调用中很容易意外地交换两个相同类型的参数。

相关内容

最新更新