簡體   English   中英

如何用正確的方法生成動態 dart class 代碼

[英]How to generate dynamic dart class code with proper methods

是否有任何方式/方法通過運行另一個 class 動態傳遞 class 名稱和屬性來生成任何 dart class class?

例如:class 姓名為“Student”,其屬性為id、name、age等。

`class Student {
   String id; 
   String name; 
   int age; 
   
   String get id { 
      return id; 
   }
 
   String get name { 
      return name; 
   } 

   int get age { 
      return age;     
   } 

   void set id(String id) { 
      this.id = id; 
   } 
 
   void set name(String name) { 
      this.name = name; 
   } 
   
   void set age(int age) { 
      if(age<= 0) { 
        print("Age should be greater than 5"); 
      }  else { 
         this.age = age; 
      } 
   } 
}

我想生成類似於 Student class 的代碼。我想動態生成它,以便我可以通過提供 class 名稱和帶有方法名稱的屬性來生成多個 class。 `

我嘗試使用 build_runner、build_config 生成代碼,但它不是動態的。 我必須編寫相同的代碼才能生成准確的代碼。

如果您使用 Visual Studio Code,則可以使用Dart Getters 和 Setters擴展。 這將為您選擇的字段創建 getter 和 setter。 它顯然不能做的是編寫這樣的代碼,因為它不知道你想要什么:

void set age(int age) { 
      if(age<= 0) { 
        print("Age should be greater than 5"); 
      }  else { 
         this.age = age; 
      } 
} 

看這里

還有Dart Data Class Generator ,它允許您為您的類生成諸如json序列化和==方法之類的東西,並設置您的字段。

不,這是不可能的。 您的 Dart 程序中的類集是固定的。 只能使用那些在源代碼和導入的庫中定義的。

最接近動態指定字段和方法的 class 是定義一個 class,它覆蓋 Object 的 noSuchMethod 方法。這個 class 的實例可以查看它們的動態數據並決定如何響應方法調用,基於被調用方法的名稱。 這樣,這個 class 的不同實例可以假裝支持不同的方法和字段,基於它們的實例數據。

您試圖使用動態構造的類來解決什么問題? 可能有更好的方法來解決您的問題。

暫無
暫無

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

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