- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该如何将字符串映射到 Haxe 中的类,然后实例化它?
class Foo{}
class Bar extends Foo{}
class Buzz extends Foo{}
// (...)
var classMap:Map<String, Class<Foo>> = [
"abc" => Bar,
"def" => Buzz
];
var myClass:Class<Foo> = classMap["abc"];
var myObj:Foo = new myClass(/* params */);
我认为这会起作用,但它在 myClass
之后抛出 unexpected (
。出了什么问题?
最佳答案
而不是存储Class<T>
在映射中并借助反射进行实例化,这是一种更好的模式来存储对构造函数的引用(使用它们的 function type ),如 this haxe.org blog post 中详细说明。 .
class Foo {}
class Bar extends Foo {
public function new() {}
}
class Buzz extends Foo {
public function new() {}
}
var constructors:Map<String, Void->Foo> = [
"abc" => Bar.new,
"def" => Buzz.new
];
var construct:Void->Foo = constructors["abc"];
var myObj:Foo = construct();
与 Type.createInstance()
不同方法,这不允许您将任意参数传递给它们甚至可能不接受的构造函数,因此它更加类型安全。它还自动与 dead code elimination 配合使用因为 Haxe 看到构造函数被引用。
关于class - Haxe - 将字符串映射到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667972/
我正在尝试使用一些附加功能编写自己的 bool “抽象”。 @forward abstract MyBool(Bool) { public inline function new(b:Bool)
haxe 中是否有某种退出语句?喜欢 import sys sys.exit(0) 在 Python 或 System.exit(0); 在 java ? P.S.:只需要这个用于 sys 目标...
是否可以根据运行时可用的信息将变量转换为另一种类型? 如果我有: interface Foo { } class Bar implements Foo { public function ne
我正在关注使用 Haxe 语言的 HaxeFlixel 教程。现在我没有任何 Haxe 经验,但我决定勇敢学习教程,因为我确实有 Java 和 Haxe 的经验,因为这种语言似乎与 Java 非常相似
我正在尝试使用构建 hxml 文件来编译 Haxe 类,而不定义入口点。 我的文件夹结构如下所示: root | ___src |___Test.hx | ___build.hxml T
对于haxe,我们通常需要使用现有的非haxe代码,因此我们可能希望我们的haxe代码吸收系统的一部分或添加到系统中,而不是编写外部代码,而我们不能假设一个好的haxe设置的系统。 例如,以 js 目
我发现在构建 Haxe 项目时,仅编译从 Main 引用的代码或由在 Main 中间接/直接引用的类引用的代码。如何强制 Haxe 将所有源 .HX 文件编译成目标语言?我试过使用 DCE 标志(no
我想像这样在 Map 中使用函数作为键: var timers : MapVoid, snow.api.Timer>; 但是 Haxe 不会编译: Abstract Map has no @:to f
有人知道一种自动获取 Haxe 项目中未使用类列表的方法吗? 我没有找到有关此的文档,但该信息应该在某处可用。就像消除死代码后的差异。 最佳答案 可以通过 -D dce-debug 编译得到 DCE
Haxe 有没有办法获得 Java 的抽象方法和抽象类的等价物? 我想要的是 // An abstract class. (Written in a Java/Haxe hybrid.) abstr
Haxe 有 trace() ,可用于所有目标以打印内容。 trace("aa"); // Main.hx:89: aa 如何只打印内容,而不打印文件名和行号? 最佳答案 对于 sys 目标(例如 n
我计划在 Haxe 的一个子集中编写 Haxe 库,这些库将编译为每种 Haxe 目标语言。有什么方法可以验证 Haxe 程序是否可以编译为所有目标语言,是否可以在不手动测试每个目标平台上的编译代码的
在Haxe中,有没有脚本或者命令可以自动运行一个多目标语言的Haxe程序?我想编写一个执行以下操作的脚本: 1) 将 Haxe 源代码编译为 JavaScript、C++、PHP 和 Java。 2)
在其他编程语言中,我可以使用 int array[23][23] 来声明每个维度有 23 个元素的二维数组。我如何在 Haxe 中实现同样的目标? 目前我需要这样做: var arr:Array> =
我的 Haxe 构建有多个目标,我必须手动对每个目标进行 c/p 更改。 .hxml 文件可以处理变量吗? 最佳答案 不,但您可以使用 --each 和 --next 减少重复: -main Exam
我想使用 Haxe 导入图像,我的图像很大,但它是 8 位,重 89kb。当我导入它时出现问题,因为内存大小增加了35mb。我想它是为 32 位图像保留内存。知道如何导入 8 位图像而不消耗这么多内存
是否有一个库/类/数据类型来处理 Haxe 中的大数字并且也是平台无关的? 我想做的是一款增量游戏(比如 Clicker Heroes),但我受制于 32 位整数限制。 我在谷歌搜索时发现了一两个类,
我需要防止类 A 在任何地方被实例化,而只能从另一个类 B 实例化,然后类 B 可以返回类 A 的创建实例,该实例可以在任何其他类中使用。 我知道 B 在这个例子中可能是一个工厂,我查看了 Haxe
开发人员可以在生产开发的前端(Web 和桌面)和后端使用 haxe 是真的吗 - 需要源代码 最佳答案 是的,这是真的。 Haxe 可以转换为多种语言,例如 PHP、Javascript、C++、Ja
是否有预定义的 HashSet Haxe 中的类,类似于 s = set() 在 Python 或 import java.util.HashSet; 在 java ? 我知道,我可以简单地使用 ha
我是一名优秀的程序员,十分优秀!