OverloadSelector
Resolves Java/Kotlin overloading -- i.e. picks, among all public members of type named alike, the one whose formal parameters best match a given list of Prolog Term arguments -- using termToObjectConverter to score how well each candidate parameter type fits each argument (see TermToObjectConverter.priorityOfConversion).
This is what allows Prolog code such as X.println(1) and X.println("a") to reach different overloads of println on the same type without the Prolog programmer ever naming a type explicitly (see as/2, it.unibo.tuprolog.solve.libs.oop.OOP.CAST_OPERATOR, for when the automatic choice needs to be overridden).
The default (JVM) implementation selects overloads reflectively.
Properties
The converter used to score how well a Term argument fits a candidate parameter type.