¿Puedo hacer que el constructor pnetworkingeterminado de una class generada a partir de un file Kotlin sea privado?

Si creo un file de Kotlin MyTest.kt

 package my.test fun sayHello(): String = "Hello" 

Se MyTestKt una class MyTestKt y se puede acceder desde java de esta manera:

 MyTestKt.sayHello() // Returns "Hello" MyTestKt myTestKt = new MyTestKt() // Instantiate 

Me gustaría hacer ese constructor privado. ¿Es eso posible? ¿Si es así, cómo?


Sé que puedo usar un object para crear un singleton, esa no es mi pregunta. Sé que puedo crear una class con un companion object dentro, esa tampoco es mi pregunta.

Puedes hacer algo como esto

 @file:JvmName("Utils") package demo fun foo() {} class Utils private constructor() 

Cuando intentas llamar al constructor de Utils desde Java obtienes un "Utils tiene acceso privado"

ACTUALIZACIÓN Cuando se utiliza un constructor privado () no se puede acceder a la function foo. Creo que esto podría ser un defecto de layout, tener una function no asociada a ningún object de class. He consultado varias bibliotecas estándar de kotlin y solo encontré las funciones de extensión que desee. En ese caso, por ejemplo, CollectionKt , no se puede crear una instancia.

  • Interceptor Kotlintest y vars lateinit
  • Se llama a Android RxJava onNext incluso cuando se anula la suscripción del observador
  • Kotlin: la mejor forma de convertir Singleton DatabaseController en Android
  • android-kotlin error: databinding de reference no resuelto & ActivityMainBinding
  • ¿Cómo puedo probar AsyncTask no llamado?
  • Deserializador de logging para una list envuelta de tipo
  • Corutinas de testing unitaria en el hilo de UI
  • ¿Es posible deshabilitar sugerencias para parameters sin nombre en Android Studio?
  • ¿Cómo puedo nombrar una variable automáticamente por su tipo en una plantilla en vivo?
  • Kotlin kapt, gradle y ebean plugin build failure
  • Suprimir "Usar syntax de acceso a la propiedad" para el método o class