Java no admite parámetros predeterminados. Necesitarás tener dos constructores para hacer lo que quieras.
Una alternativa si hay muchos valores posibles con los valores predeterminados es usar el patrón del generador, mediante el cual se utiliza un objeto auxiliar con los ajustadores.
p. Ej.
public class Foo {
private final String param1;
private final String param2;
private Foo(Builder builder) {
this.param1 = builder.param1;
this.param2 = builder.param2;
}
public static class Builder {
private String param1 = "defaultForParam1";
private String param2 = "defaultForParam2";
public Builder param1(String param1) {
this.param1 = param1;
return this;
}
public Builder param2(String param1) {
this.param2 = param2;
return this;
}
public Foo build() {
return new Foo(this);
}
}
}
que le permite decir:
Foo myFoo = new Foo.Builder().param1("myvalue").build();
que tendrá un valor predeterminado para param2
.
No estoy familiarizado con PHP, pero ¿por qué no declaras param2 dentro del método? –
esto indica que es un parámetro opcional, si especifica param2 obtiene el valor que da, de lo contrario obtiene el valor "2" – luketorjussen