Kotlin – forma idiomática de crear un Fragmento nuevoPatrón de instancia

La mejor práctica en Android para crear un Fragment es usar un método de fábrica estático y pasar arguments en un Bundle través de setArguments() .

En Java, esto se hace de la siguiente manera:

 public class MyFragment extends Fragment { static MyFragment newInstance(int foo) { Bundle args = new Bundle(); args.putInt("foo", foo); MyFragment fragment = new MyFragment(); fragment.setArguments(args); return fragment; } } 

En Kotlin, esto se convierte en:

 class MyFragment : Fragment() { companion object { fun newInstance(foo: Int): MyFragment { val args = Bundle() args.putInt("foo", foo) val fragment = MyFragment() fragment.arguments = args return fragment } } } 

Esto tiene sentido para admitir la interoperabilidad con Java, por lo que aún se puede MyFragment.newInstance(...) través de MyFragment.newInstance(...) , pero ¿hay alguna forma más idiomática de hacerlo en Kotlin si no tenemos que preocuparnos por la interoperabilidad de Java?