簡體   English   中英

通過 Dart 中的字符串名稱實例化 class

[英]Instantiating a class by String name in Dart

我試圖調用一個 class 的方法,我只知道它的名稱是一個字符串。 因此,現在我需要一個允許我實例化實例的 class 的 ClassMirror。 但是,似乎只能通過使用reflectClass(Type)輸入類型或將該 class 的現有實例傳遞給reflect(dynamic)來創建 ClassMirror。 因此,如果我只有一個字符串,這些都無濟於事。

在 Java 中,您可以通過調用Class.forName(String)輕松完成此操作。 然后你會得到一個 Constructor 實例,使其可訪問並調用它。

有誰知道這在 dart 中是否可行? 奇怪的是,一旦有了 ClassMirror,您就可以通過傳遞符號來訪問字段和方法,這些符號可以由字符串創建。

您可以將 map 的特定字符串列表放入特定的閉包列表中,以創建具有特定參數的新 object。

但是如果不使用 dart:mirrors,您將無法獲得反射,該鏡像已被棄用,並且還對樹抖動產生負面影響以減小有效負載大小。

通常,我們邀請您查看 package:reflectable 以實現 dart:mirrors 的大部分內容,使用源到源構建器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM