groostav
03/15/2023, 9:48 PMclass ConvertedOldModelObject private constructor(oldCtorArg: OldJavaDomainType, ...) {
  //...
  companion object {
    @JvmStatic @JvmName("create") operator fun invoke(oldCtorArg: OldJavaDomainType, ...) {
      //some caching logic to try to avoid hanging on to allocaitons, a kind of poor mans constant pool
      return CovertedOldModelObject(oldCtorArg, cachedArgs, ...)
    }
  }
}OldJavaDomainType oldThing = OldJavaDomainType.create(args...)val x = OldJavaDomainType(args...)companion object operator fun invokefun create()ephemient
03/15/2023, 10:16 PMephemient
03/15/2023, 10:18 PMephemient
03/15/2023, 10:26 PMcompanion object { operator invoke() }interface Foo
private class FooImpl(...) : Foo
public fun Foo(...): Foo = FooImpl(...)Youssef Shoaib [MOD]
03/16/2023, 10:12 AMcompanion object operator fun invoke