您可以在类中创建帮助程序函数而无需实例化该类的对象吗?

堕落者

我有一个其实例化对象具有功能的类,但是我知道其他语言将在该类内部具有辅助功能,而这些功能是公共的,而没有显式定义对象。

DART语言网站似乎并没有真正解决它。在一个简单的情况下,可能类似于拥有一个Point类,然后在其中包含一个jsondecoder,这可能有一些用处,而不必包含其他库。

class Point {
  int x, y;
  Point(this.x, this.y);

  Point fromMap(HashMap<String, int> pt){
    return new Point(pt["x"]||null, pt["y"]||null);
  }
}

这样,当我需要使用Point类时,我可以说:

Point pt = Point.fromMap({});

我没有真正看到任何有关何时翻阅类以使其适当公开的示例。

亚历山大·阿杜因

Dart允许在类上定义静态成员。在您的情况下:

class Point {
  int x, y;
  Point(this.x, this.y);

  static Point fromMap(Map<String, int> pt) {
    return new Point(pt["x"], pt["y"]);
  }
}

值得注意的是,您还可以使用命名构造函数和/或工厂构造函数:

class Point {
  int x, y;
  Point(this.x, this.y);

  // use it with new Point.fromMap(pt)
  Point.fromMap(Map<String, int> pt) : this(pt["x"], pt["y"]);

  // use it with new Point.fromMap2(pt)
  factory Point.fromMap2(Map<String, int> pt) => new Point(pt["x"], pt["y"]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在Java中创建对象的实例而无需调用构造函数?

您可以使用无类型对象实例化Java类构造函数吗?

您可以从类的共享函数中获取/更改对象的所有实例的数据吗?

我可以将内部类声明为静态类并访问它而无需在周围的类中创建对象吗?

从普通对象创建类实例,而无需手动构造函数

C# 为什么我可以通过属性访问非静态类的方法和属性,而无需先创建该类的实例?

您可以调用基类的构造函数来创建派生对象吗?

您可以为Haskell中的整个类而不是类型而不是类型创建实例吗?

您可以从C#中的Task中的实例化获取对象吗?

您可以在该类的成员函数内使用一个类吗?c ++

您可以在Python中创建变量列表而不实例化变量吗?

您可以根据类型检查对象,而无需为其分配所述类型吗?

可以在一个类内调用实例的方法而无需在类的范围内重新创建该实例吗?

我可以使用类对象实例化一个类吗?构造函数呢?

Ihttpcontextaccessor 在构造函数内的实用程序类中使用,如何在控制器中创建该类的实例

打字稿:访问类的静态成员,而无需从构造函数签名数组中实例化它

您可以从数组中获取价值而无需先获取数组吗?

包含随机对象变量的类(该类的实例)可以不可变吗?

您可以在Spring REST中序列化对象的属性而不是整个对象吗?(对象是类的字段)

您可以在TypeScript中创建嵌套类吗?

您可以从Java程序中运行Java类吗?

您可以引用ngOnInit中创建的函数吗?

您可以在函数中拦截并创建AxiosPromise吗?

在该类中创建一个类的实例是标准做法吗?

我们可以在另一个类的构造函数的帮助下初始化对象吗?

您可以将 Python 类实例成员变量设置为 Cython 对象吗?

制作另一个文件中的类的实例,而无需创建新变量

使用json_serializable序列化对象列表,而无需创建额外的类

您可以使用字符串实例化类吗?