重复类中达特(Duplicate Class in Dart)

2019-09-16 16:35发布

我写一个简单的应用程序来学习一些基本的飞镖节目,但我想不通的结构和夹杂物 - 我得到一个重复类点

首先,我有我的主类我叫MouseTrack。 它初始化列表中,将有一个循环。

#import('dart:html');
#import('Eye.dart');

class MouseTrace {
List<Eye> eyes;
...
}

其次,我有一个名为类,这是应该持有的眼睛是圆的信息。 这是很简单的:

#library('app:eye');

#import('dart:html'); // without this one, I get no error but I want to have it to use CanvasRenderingContext2D

#import('Point.dart');

class Eye {
  Point position;
  num radius;

  Eye() :
      position = new Point() {
  }

  void draw(CanvasRenderingContext2D context) {
    // draws a circle
  }
}

最后一点

#library('app:point');

class Point {
    num x, y;

    Point(this.x, this.y);
}

我想实现的是3个独立的类- 主要眼睛 ,这样我就可以有的情况下,在 (为简单和漂亮的模型),并在 的情况下(存储位置)。 至少这是我如何用来干什么的。

PS我知道我可以跳过的类型,但我想它那里,我想这是有夹杂物,而不是语言问题(要修复它,所以我知道如何正确地做到这一点)。 PSS我已经削减了一些代码,这样你就不用看了一切,但,如果你愿意,我会后这一切。

Answer 1:

问题就出在app:eye库(在Eye.dart文件)。 您导入dart:htmlapp:point库,但两者都定义一个Point类。 这种情况是无效的。 你可以解决它无论是不是进口dart:html可言,如果你不需要它,或前缀这些进口中的一种:

#import('dart:html', prefix: 'html');
#import('Point.dart');

在这种情况下,你将不得不指从名称dart:html使用html. 字首。 在你的情况,如果你想使用CanvasRenderingContext2D类,你将不得不写html.CanvasRenderingContext2D代替。



文章来源: Duplicate Class in Dart