# Constructor with default parameters

**URL:** <https://discuss.kotlinlang.org/t/constructor-with-default-parameters/7794>\
**Category:** Uncategorized\
**Created:** [May 14, 2018, 10:29am UTC](https://discuss.kotlinlang.org/t/constructor-with-default-parameters/7794 "2018-05-14T10:29:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmitry.sokolov.1](https://avatars.discourse-cdn.com/v4/letter/d/b5ac83/32.png) [@dmitry.sokolov.1](https://discuss.kotlinlang.org/u/dmitry.sokolov.1)\
**Post date:** [May 14, 2018, 10:29am UTC](https://discuss.kotlinlang.org/t/constructor-with-default-parameters/7794/1 "2018-05-14T10:29:35Z")

</div>

Good day, all.  
While using both java and kotlin classes I ran into some inconvenient approaches, to pass null values to unnecessary fields in primary constructors in data classes.  
I am a newer in using both java and kotlin languages in the same proect.  
So, the idea is generate builder, which contains val-fields in constructor, even if they have default values and var fields, which not contains default values, and builder methods which can change variables with default values.

---

<div class="post-metadata">

**Author:** ![medium](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/medium/32/10404_2.png) [@medium](https://discuss.kotlinlang.org/u/medium)\
**Post date:** [May 14, 2018, 11:18am UTC](https://discuss.kotlinlang.org/t/constructor-with-default-parameters/7794/2 "2018-05-14T11:18:02Z")

</div>

You can use usual constructor with named parameters and default values. For better Java interoperability you can decorate these constructors with [`@JvmOverloads`](https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#overloads-generation). The compiler will generate overloaded variants of decorated constructors.
