В Котлине, как создать экземпляр общего? В C# и Java эта задача очень проста, и я чувствую себя очень глупо из-за того, что не могу сделать это любым способом, который я пробовал.
Обратите внимание, что я не контролирую вывод «основного» универсального Kotlin и, следовательно, не могу использовать дисперсию; однако я могу гарантировать, что это класс Kotlin с возможностью создания экземпляров (не Java), который имеет конструктор с нулевым аргументом.
Также обратите внимание, что я уже прочитал это (не заставив его работать): https://youtrack.jetbrains.com/issue/KT-6728
Немного мнения - очень уж понравился Котлин после недели-двух игры.
Код C# / очень простой пример. Java очень похож:
using System;
namespace GenInstance
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
var w = new Instancer<Whatever> ().Map ();
Console.WriteLine (w);
Console.ReadLine ();
}
}
public class Instancer<T> where T : new() {
public T Map() {
return new T();
}
}
public class Whatever {
public override string ToString ()
{
return "My Instance";
}
}
}
inline fun <reified T : Any> create(): T = T::class.primaryConstructor!!.call()
- person Grigory Katkov   schedule 16.11.2015