Java 谁能告诉我dartlang是如何创建抽象映射类的?
为什么dart的hashmap不像java的hashmap 这意味着java的hashmap是Java 谁能告诉我dartlang是如何创建抽象映射类的?,java,dart,Java,Dart,为什么dart的hashmap不像java的hashmap 这意味着java的hashmap是 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {} 公共类HashMap扩展AbstractMap实现Map、Cloneable、Serializable{} 但dart是 abstract class HashMap
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {}
公共类HashMap扩展AbstractMap实现Map、Cloneable、Serializable{}
但dart是
abstract class HashMap<K, V> implements Map<K, V> {}
抽象类HashMap实现Map{}
为什么它是抽象的
!!!新问题
void clear()
功能。我想知道Map接口的void clear()
功能是在哪里实现的?我在抽象HashMap类中找不到它李>
工厂构造函数返回\u HashMap
的实例
import 'dart:collection';
void main() {
var hashMap = HashMap();
print(hashMap.runtimeType);
}
结果:
\u HashMap
这意味着
\u HashMap
实现(或扩展)HashMap
在Dart中,您可以在抽象类上拥有一个具体的工厂
构造函数,然后转发到另一个类。尽管构造函数是针对抽象类调用的,但您得到的实例是一个具体的子类型
import 'dart:collection';
void main() {
var hashMap = HashMap();
print(hashMap.runtimeType);
}
abstract class Foo {
factory Foo() = Bar;
}
class Bar implements Foo {}
void main() {
print(Foo().runtimeType); // "Bar"
}
嗨,欢迎来到Stack Overflow。我不熟悉Dart,但我认为它是一种编译成JS的完全不同的编程语言。开发人员在他们的语言/库中以类似的方式(有时是相同的方式)实现一些编程概念也就不足为奇了。“!!!新问题!!!”将其作为新问题发布。感谢您的建议!我已经把它作为一个新问题发布在