Java 如何编写具有多个参数的高效表单方法

Java 如何编写具有多个参数的高效表单方法,java,cyclomatic-complexity,Java,Cyclomatic Complexity,我有办法 public List getListaDataTable(param1, param2, param3) 方法必须调用其他方法,因为参数为null。如果我用来做,如果。。。否则我将执行7个条件。你知道怎么解决这个问题吗 THX您可以在没有空参数的情况下附加函数 public List getListaDataTable(param1, param2, param3, param4, param5, param6, param7) { // Do function A

我有办法

public List getListaDataTable(param1, param2, param3)
方法必须调用其他方法,因为参数为null。如果我用来做,如果。。。否则我将执行7个条件。你知道怎么解决这个问题吗


THX

您可以在没有空参数的情况下附加函数

public List getListaDataTable(param1, param2, param3, param4, param5, param6, param7)
{
    // Do function A
    // Do function C

public List getListaDataTable(param1, param2, param3, param4, param7)
{
    // Do function B
    // Do function C

所有七个条件都相关吗?这些参数是相同类型的还是不同类型的?不同类型且所有条件都相关?您可以使用重载,但方法的调用方必须知道哪些参数不为null,才能调用正确的重载方法。将参数封装到请求对象中,在这个请求对象中添加7个布尔函数,代表您需要检查的7个条件。我认为这不是可伸缩的解决方案,第二件事,您仍然需要计算参数以找到哪个为空,找到您需要调用的方法我们没有足够的信息来定义它,参数没有类型,mathieu不使用数组,我认为类型不相同,
    char[] code = {'0', '0', '0'};
    if (param1 != null) code[0] = '1';
    if (param2 != null) code[1] = '1';
    if (param3 != null) code[2] = '1';

    String codeString = String.copyValueOf(code);
    switch (codeString) {
      case "000":
        //all are null
        break;
      case "100":
        //param1 is not null
      ...

    }