Java 具有相同类型的方法参数

Java 具有相同类型的方法参数,java,methods,Java,Methods,我想知道编写至少接受三个相同类型参数的方法的最佳实践是什么。问题是使用这种方法时可能会混淆参数。比如说 method(int userId, int productId, int weight, int price) 我看到的唯一解决方案是使用一些holder类(可能使用了builder模式)并将其作为方法参数传递。最佳实践是使用清晰的参数名称(并可能在Javadoc中澄清它们)。如果参数太多,最好使用单独的对象 如果方法的调用方不能区分不同的(命名良好的)参数,那么他可能不应该首先调用该方法

我想知道编写至少接受三个相同类型参数的方法的最佳实践是什么。问题是使用这种方法时可能会混淆参数。比如说

method(int userId, int productId, int weight, int price)

我看到的唯一解决方案是使用一些holder类(可能使用了builder模式)并将其作为方法参数传递。

最佳实践是使用清晰的参数名称(并可能在Javadoc中澄清它们)。如果参数太多,最好使用单独的对象


如果方法的调用方不能区分不同的(命名良好的)参数,那么他可能不应该首先调用该方法。

在这种情况下,可以使用变量参数概念

method(int… ids){
    userid = ids[0];
    productid = ids[1];
}

对我来说,我认为最好的做法是使用数据类(JavaBean),但是您的参数有一个命名为标准的遗嘱,然后您使用这个数据类对象作为参数


这种方法的缺点是增加了系统中的耦合。

根据具体情况,可能是一种相关的重构选项

,我从中引用以下内容(强调我的):

通常,您会看到一组特定的参数倾向于被传递 在一起有几个方法可以在一个类或多个类上使用此组 在几节课上。这样一组类是一个数据束,可以 替换为包含所有这些数据的对象。它是 值得将这些参数转换为对象,以便对 把数据放在一起。这种重构很有用,因为它减少了大小 参数列表的长度和长参数列表很难定义 理解。新对象上定义的访问器也会生成代码 更加一致,这再次使其更易于理解和修改


再加上现代IDE显示代码完成(Eclipse显示参数名),似乎不可能将它们混合在一起,除非您下定决心这样做。我知道……对我来说这也是常识,但对提问者来说这似乎是一件新鲜事,因此值得添加更多的词。现在…+1我只是想建议他,如果参数类型相似,那么可以使用var args。这就是我想说的!