很难用文字解释但是我有以下代码:
void main() {
Test2 test2 = new Test2();
// This one is different?
printHashcode(test2.type);
// Following 2 are the same
printHashcode(Test2);
printHashcode(Test2);
}
void printHashcode(Type t) {
print("$t hashcode: ${t.hashCode}");
}
class Test<T> {
Type type = T;
}
class Test2 extends Test<Test2> {
Test2 () {
}
}
示例输出:
Test2哈希码:629420109
Test2哈希码:229136709
Test2哈希码:229136709
我期望的输出是主函数中的3个打印是相同的,但第一个是不同的。这是一个错误还是预期的功能?
如果它是一个预期的功能,有没有办法获得与Test2类定义相同的Type对象?
谢谢,
答案 0 :(得分:1)
我刚试过你的代码,我得到了所有三个打印语句的相同输出
Test2 hashcode: 683363706
Test2 hashcode: 683363706
Test2 hashcode: 683363706
刚刚更新到最新的开发版本(原始频道)
Dart VM version: 1.1.0-dev.4.0 (Fri Dec 13 03:22:00 2013) on "linux_x64"