gpt4 book ai didi

android-studio - Dart 的 IntelliJ 实时模板命名构造函数 : lists class' fields

转载 作者:行者123 更新时间:2023-12-03 03:58:22 28 4
gpt4 key购买 nike

我想在 Dart 中生成一个自定义命名构造函数。
我有许多要实现的 dto 类,每个都应该提供一个命名构造函数,例如:ClassName.fromMap() .

例如这个类:

class Student {
final String name;
final int age;
}

生成的构造函数应该是:
Student.fromMap(Map<String, dynamic> map) :
name = map['name'],
age = map['age'];

如何将当前类的字段列表检索为字符串?这甚至可能吗?
当然,我可以有可变数量的字段。

我的模板看起来像:
$CLASS$.fromMap(Map<String, dynamic> map) :
$INITIALIZATION_LIST$

绑定(bind) $CLASS$dartClassName() .

现在我想绑定(bind) $INITIALIZATION_LIST$类似于:
getClassFieldList().forEach((fieldName) => "$fieldName = map['$fieldName']")

我可以实现这样的目标吗?

最佳答案

无法使用预定义的实时模板函数检索 Dart 类字段列表。您可以尝试为此开发自己的模板宏。见 https://intellij-support.jetbrains.com/hc/en-us/community/posts/206201699-create-a-new-expression-for-a-live-template-for-actionscript一些提示。
现有的实时模板函数实现可以在 https://github.com/JetBrains/intellij-community/tree/master/platform/lang-impl/src/com/intellij/codeInsight/template/macro 找到。 .

您也可以尝试使用 Structural Search and Replace而不是实时模板

关于android-studio - Dart 的 IntelliJ 实时模板命名构造函数 : lists class' fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59388513/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com