Я разработчик Swift и новичок в Dart. Я пытаюсь написать какой-то общий метод.
Хотелось бы узнать, смогу ли я добиться подобной вещи в Дартсе.
//Swift version
public func modelFrom<T: Mappable>(response: Encodable?, model: T.Type) -> T? {
if let response = response, let string = response.jsonString {
return T(JSONString: string)
}
return nil
}
// The method can be called like this
let responseModel = modelFrom(response: response, model: FoodLogModel.self)
Дарт, могу ли я привести тип универсального класса? как <T: Mappable>
в Swift?
Является ли runtimeType
в дротике эквивалентным <ClassName>.self
в Свифте?
Большое спасибо
Вот что я пробовал,
import 'package:dartson/dartson.dart';
import 'package:mobile_corelib/base/model.dart';
T requestFrom<T>(BaseModel model, Type T) {
try {
var dson = new Dartson.JSON();
var object = dson.map(dson.encode(model), T.runtimeType);
return object;
} catch(error) {
return null;
}
}
var dick = requestFrom(model, AccessTokenRequest().runtimeType)
Но я не знаю, как пройти в Class type
. Должен ли я использовать dynamic
? или Type