标签: dart-mirrors

如何在Dart中测试函数的存在?

有没有办法在Dart中测试函数或方法的存在而不试图调用它并捕获NoSuchMethodError错误?我正在寻找类似的东西

if (exists("func_name")){...}
Run Code Online (Sandbox Code Playgroud)

测试名为的函数是否func_name存在.提前致谢!

dart dart-mirrors

7
推荐指数
1
解决办法
937
查看次数

在dart中查找所有子类

我在飞镖中有三个课程:

class A {}

class B extends A{}

class C extends A{}
Run Code Online (Sandbox Code Playgroud)

有一种方法可以从A获取所有子类吗?

编辑:

感谢Alexandre Ardhuin您的解决方案完美无缺!

我正在学习飞镖我编辑了你的代码并提出了递归解决方案,看看:

import 'dart:mirrors';

class A {}
class B extends A{}
class C extends A{}
class D {}
class E extends C {}

bool isParent(String parent,ClassMirror clazz){
  var objectParentName = MirrorSystem.getName(clazz.superclass.simpleName);
  if (objectParentName == "Object"){
    return parent == "Object";
  }
  var result = parent == objectParentName;
  if (!result){
    return isParent(parent,clazz.superclass);
  }
  return result;
}

List<String> findAllSubclasses(String clazz){
  var result = [];
  final ms = currentMirrorSystem(); …
Run Code Online (Sandbox Code Playgroud)

reflection inheritance dart dart-mirrors

7
推荐指数
1
解决办法
611
查看次数

在 Dart 中,从变量调用静态方法的问题

Klass静态方法的类fn1

class Klass {
  static String fn1() => 'hello';
}

> Klass.fn1(); //  hello
Run Code Online (Sandbox Code Playgroud)

但是当Klass分配给一个变量时,调用该方法fn1失败

var k = Klass;

> k.fn1() // "Unhandled exception: Class '_Type' has no instance method 'fn1'.
Run Code Online (Sandbox Code Playgroud)

不太清楚这里发生了什么

static class dart dart-mirrors

7
推荐指数
2
解决办法
1万
查看次数

飞镖上是否有相当于python的dir()?

正如标题所说,是否有相当于dir()镖的蟒蛇?

dart dart-mirrors

6
推荐指数
1
解决办法
207
查看次数

如何在Dart中获取课程的所有字段?

我查看了dart:mirrors库,然后找到ClassMirror。当我看到getField我没有看到所有字段的访问权限。我确实看到了getters

如果我想获得一堂课的所有字段,我必须经过getters吗?

dart dart-mirrors

6
推荐指数
2
解决办法
4533
查看次数

从Dart中的String创建对象的实例?

我如何处理这个Java代码的Dart等价物?

Class<?> c = Class.forName("mypackage.MyClass");
Constructor<?> cons = c.getConstructor(String.class);
Object object = cons.newInstance("MyAttributeValue");
Run Code Online (Sandbox Code Playgroud)

(来自Jeff Gardner)

dart dart-mirrors

6
推荐指数
1
解决办法
3182
查看次数

如何获取抽象类中字段的默认值

假设我有一个这样的类:

abstract class Foo {
  String name bar = 'bar';
}
Run Code Online (Sandbox Code Playgroud)

使用镜像,我们可以得到 的值bar吗?

dart dart-mirrors

6
推荐指数
1
解决办法
602
查看次数

在什么情况下reflectClass(o.runtimeType)从reflect(o).type返回不同​​的结果?

dartdocsInstanceMirror.type:

"返回reflectee实际类的镜像.reflectee的类可能与通过在reflectee上调用runtimeType返回的对象不同."

那么在什么情况下会reflectClass(o.runtimeType)产生不同的结果reflect(o).type呢?

我尝试过示例代码:

import 'dart:mirrors';

class A{}

void main() {

  var string = "str";
  var boolean = true;
  var integer = 5;
  var map = {};
  var list = [];
  var custom = new A();

  var strRunT = string.runtimeType;
  var strRefT = reflect(string).type.reflectedType;
  var boolRunT = boolean.runtimeType;
  var boolRefT = reflect(boolean).type.reflectedType;
  var intRunT = integer.runtimeType;
  var intRefT = reflect(integer).type.reflectedType;
  var mapRunT = map.runtimeType;
  var mapRefT = reflect(map).type.reflectedType;
  var listRunT = list.runtimeType; …
Run Code Online (Sandbox Code Playgroud)

dart dart-mirrors

6
推荐指数
1
解决办法
123
查看次数

dart lang 中的自定义注释/元数据

谁能给我解释一下 Dart 中注释的使用吗?

在文档中,我找到了这个例子:

library todo;

class todo {
  final String who;
  final String what;

  const todo(this.who, this.what);
}
Run Code Online (Sandbox Code Playgroud)

其次是

import 'todo.dart';

@todo('seth', 'make this do something')
void doSomething() {
 print('do something');
}
Run Code Online (Sandbox Code Playgroud)

那么,我应该在 main() 中编写什么来执行 doSomething() 函数呢?

谢谢

dart dart-mirrors

6
推荐指数
1
解决办法
2612
查看次数

如何将键值对添加到对象?

我想通过添加更多的键值对来更新我的对象。

Object options = {
  "first_name": "Nitish",
  "last_name" : "Singh"
}
Run Code Online (Sandbox Code Playgroud)

初始化对象后,我想再添加一个键和值。有没有办法做到这一点。

添加另一个键值对后,我的对象将如下所示

options = {
  "first_name" : "Nitish",
  "last_name"  : "Singh"
  "middle_name": "Kumar"
}
Run Code Online (Sandbox Code Playgroud)

object dart dart-mirrors

6
推荐指数
1
解决办法
8099
查看次数

标签 统计

dart ×10

dart-mirrors ×10

class ×1

inheritance ×1

object ×1

reflection ×1

static ×1