método de extensión para la class de utilidad de la biblioteca externa

Estoy usando FilenameUtils de apache commons

Tuve tal acción en el código

 val customPath = FilenameUtils.getPath(source) + DEFAULT_SEPARATOR + FilenameUtils.getBaseName(source) val resultPath = FilenameUtils.separatorsToSystem(customPath) 

Decidí convertirlo en el método de extensión. Lo moví a la class separada.

 object PluginExtensions { fun FilenameUtils.normalizeFilePath(source: String) : String { val customPath = FilenameUtils.getPath(source) + DEFAULT_SEPARATOR + FilenameUtils.getBaseName(source) return FilenameUtils.separatorsToSystem(customPath) } fun File(name: String) : File = File(name).apply { createNewFile() } } 

Sin embargo, no puede encontrar ese nuevo método en la class donde lo estoy usando

enter image description here

¿Cuál es el problema?

    Antes de poder usar este método de extensión, debe importarlo.

     import PluginExtensions.normalizeFilePath 

    La function de extensión se define solo para el object PluginExtensions. En cualquier lugar fuera de este object, debe importar para que la extensión sea visible. Una alternativa sería definir la extensión en el nivel del package. Esto haría que tu extensión sea visible para todo el package.

    Eche un vistazo a la documentation de extensiones. Específicamente Ámbito de Extensiones .

    Debe importar la function al file donde la está llamando. Una function de extensión no se encuentra en la class que está ampliando. Está ubicado en el lugar donde lo definiste.

    Escriba esto en el file donde está usando la function:

     import PluginExtensions.normalizeFilePath