获取Dart类的名称作为Type或String

时间:2019-04-24 17:07:02

标签: dart flutter

我需要解决的问题

是否有一种方法可以将dart class的类名作为StringType对象来获取??

class MyClass {
}
var myClass = MyClass();

我知道propertyruntimeType会将对象的类型作为Type对象返回。但是类有类似的功能吗?

print(myClass.runtimeType.toString());

我当前要做的是创建该类的对象并使用runtimeType

String type = MyClass().runtimeType.toString();

注意:在python中,每个类都有一个名为__name__的变量,它可以满足我的需要。

我的意图

我的最终目标是使用以前保存的类名创建一个飞镖对象。他们在this issue中提出了一种使用Map的方法。
问题是我有很多类,在我的情况下该方法看起来很混乱。

我目前要做的是,通过以下方式保存对象类型:

var saving = myClass.runtimeType.toString();

加载时:

if (saving == MyClass().runtimeType.toString()) {
    return MyClass();
}

根据您的经验和意见,您可以提出更好的解决方案吗?。

谢谢!!!

2 个答案:

答案 0 :(得分:13)

您可以使用:

var runtimeTypeName = (MyClass).toString();

或对于仿制药:

var runtimeTypeName = T.toString();

答案 1 :(得分:1)

类类型可以用作Type

Type myType = MyClass;