Get the name of a Dart class as a Type or String

帅比萌擦擦* 提交于 2020-12-25 01:56:55

问题


Problem I need to solve

Is there a way to get the class name of a dart class as a String or a Type object..?

class MyClass {
}
var myClass = MyClass();

I know the property, runtimeType which return the type of the object as a Type object. But is there a similar function for classes?

print(myClass.runtimeType.toString());

What I currently do is creating a object of the class and use runtimeType.

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

Note: In python there is a variable called __name__ in every class, which does what I need.

My intention

My final goal is to create a dart objects using previously saved class names. In this issue they have proposed a method using Maps.
Thing is I have lots of classes and that method looks messy in my situation.

What I currently do is, save the object type by:

var saving = myClass.runtimeType.toString();

And when loading:

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

From your experiences and opinions, can you propose a better solution..?

Thank You!!!


回答1:


The class type can be used as a Type:

Type myType = MyClass;



回答2:


You can use:

var runtimeTypeName = (MyClass).toString();

or for generics:

var runtimeTypeName = T.toString();


来源:https://stackoverflow.com/questions/55835258/get-the-name-of-a-dart-class-as-a-type-or-string

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!