【问题标题】:in Dart, what is the best way to know if a class has been defined?在 Dart 中,知道类是否已定义的最佳方法是什么?
【发布时间】:2014-01-22 06:47:58
【问题描述】:

在我的程序中,我希望根据是否定义了一个类来实现不同的行为。

如果有undefinedjavascript 一样,是这样的:

var i = (NewClass == undefined) ?新旧类():新新类();

既然Dart已经编译好了,这样的事情可以做吗?


似乎最好的答案是使用字符串“NewClass”搜索类NewClass。见Instantiate a class from a string

【问题讨论】:

  • 实际上,该代码也不能在 JavaScript 中运行,如果根本没有声明 NewClass,你会得到一个 ReferenceError(typeof NewClass === "undefined") 会起作用,也许有一个 Dart 等价物。

标签: class reflection dart


【解决方案1】:

我不确定你真正想要表达什么。

在 Dart 中你不能动态定义类(至少现在还不能)
因此,这样的 if 没有任何意义。

【讨论】:

  • 一个库可能包含也可能不包含,它会添加NewClass
  • 在运行时检查这个是没有意义的。您只能在编译时添加它。你也可以写if (I have not written correct code) { do the right thing anyways; }
  • Dart 没有动态加载的概念?真的吗?
  • 是的,但也隔离加载仅编译的单元。您只能使用序列化对象(字节序列)进行通信。如果该类型不包含在接收隔离的代码中,则无法反序列化为原始类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 2017-01-15
  • 2012-04-30
  • 2019-05-25
  • 2017-10-21
相关资源
最近更新 更多