Посмотрите на этот фрагмент кода, над которым я сейчас работаю (он предназначен для анализа некоторых аргументов из аргументов основного метода):
def parser[T](identifier: String, default: T, modifier: String => T): T = {
val l = args.filter(_.startsWith(identifier))
if(l.isEmpty) default
else modifier(l(0).drop(identifier.length).trim)
}
Я также намеревался написать перегруженный метод, которыйимеет дело со случаем строк:
def parser(identifier: String, default: String): String = parser[String](identifier, default, identity)
Компилятор, кажется, не впечатлен этим и не позволит мне перегрузить метод.Мне нужно изменить имя любого из методов, чтобы заставить эту работу:
def parser(identifier: String, default: String): String = genParser[String](identifier, default, identity)
Есть ли причина, по которой я не могу перегрузить, когда используются параметры типа?