Думаю, «джавафикация» экосистемы Go только усилится с появлением в 1.27 дженерик-методов (это методы, у которых может быть собственный параметр типа).
// Sum - сумма целых чисел.
type Sum[T int | int64] struct {
v T
}
// Add добавляет число к сумме, приводя его к целому, если нужно.
func (s *Sum[T]) Add[V int | int64 | float64](v V) *Sum[T] {
s.v += T(v)
return s
}
В этом примере T — параметр типа на структуре, а V — параметр типа на методе. В предыдущих версиях Go параметры вроде V приводили к ошибке "method must have no type parameters", а теперь будут разрешены.
var s Sum[int]
s.Add(30).Add(10).Add(2.3)
fmt.Println(s.Val())
// 42
Вряд ли мы увидим ненужные дженерик-абстракции прямо в стдлибе, но многие авторы сторонних пакетов и приложений с радостью начнут (точнее, продолжат с удвоенной силой) их городить.