如何在Flutter中获取当前的className?

33

我有一个类:

class Dog {

Dog() {
  print("Current classname is: ${this.className}");
}

}

看起来这个.className不被允许。有相应的替代方案吗?

5个回答

61
this.runtimeType

或者只是

runtimeType

返回当前类的名称。


1
这对于静态方法不起作用。(用例是日志消息和元数据) - Worik

3

如果你想在类的开头而不是build方法中初始化一个变量,那么可以简单地按照以下方式操作:

String className = (YourClass).toString();

1
请查看附加的图片,其中展示了一个独立代码的实现,仅获取此函数的类名。
void printArea(Shape shape){
  String shapeClass = (shape).runtimeType.toString();
  print('The area of the $shapeClass is: ${shape.area}');
}

在DartPad上的完整代码


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

1

您可以使用以下代码打印类名:

print('$runtimeType');

0
我想补充一下那个正确答案上面的内容。
this.runtimeType

如果您正在处理有状态的小部件,并且想要知道页面/小部件名称,您还可以使用以下内容来获取小部件名称。

widget.toString()

我们使用它来追踪最多点击的页面等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接