andriod studio live template 设置生成通用类模板

18 min read
class $className$ {
  String $var1$;
  String $var2$;
  $className$({
    @required this.$var2$,
    @required this.$var1$,
  });
  factory $className$.empty() => $className$(
        $var1$: "",
        $var2$: "",
      );
  factory $className$.fromMap(Map data) {
    try {
      return $className$(
        $var1$: data['$var1$'] ?? "",
        $var2$: data['$var2$'] ?? "",
      );
    } on Exception catch (e, s) {
      print("$className$.fromMap Exception : $e\n$s");
    }
    return $className$.empty();
  }
}

预计生成的结果为

import 'package:meta/meta.dart';
class User {
  String id;
  String name;
  User({
    @required this.name,
    @required this.id,
  });
  factory User.empty() => User(
        id: "",
        name: "",
      );
  factory User.fromMap(Map data) {
    try {
      return User(
        id: data['id'] ?? "",
        name: data['name'] ?? "",
      );
    } on Exception catch (e, s) {
      print("User.fromMap Exception : $e\n$s");
    }
    return User.empty();
  }
}