Does Java support default parameter values?

后端 未结 25 2174
清歌不尽
清歌不尽 2020-11-22 07:07

I came across some Java code that had the following structure:

public MyParameterizedFunction(String param1, int param2)
{
    this(param1, param2, false);
}         


        
25条回答
  •  离开以前
    2020-11-22 07:21

    It is not supported but there are several options like using parameter object pattern with some syntax sugar:

    public class Foo() {
        private static class ParameterObject {
            int param1 = 1;
            String param2 = "";
        }
    
        public static void main(String[] args) {
            new Foo().myMethod(new ParameterObject() {{ param1 = 10; param2 = "bar";}});
        }
    
        private void myMethod(ParameterObject po) {
        }
    }
    

    In this sample we construct ParameterObject with default values and override them in class instance initialization section { param1 = 10; param2 = "bar";}

提交回复
热议问题