0
我發現了Groovy 2.4.7,1.6.0 JVM在嘗試評估而不是 instanceof條件時沒有預料到的行爲。Groovy「not instanceof」特性
在總結:
class Foo {
static Boolean bar() {
String x = "Personally, I don't really like King Crimson"
return (!x instanceof Integer)
}
}
我預計Foo.bar()將因爲x是不整數的一個實例,但是Foo.bar()返回false返回true。相比之下以下返回true:
class Foo {
static Boolean bar() {
String x = "Personally, I don't really like King Crimson"
return !(x instanceof Integer)
}
}
問題是學術的,但出於好奇:這是一個錯誤的語言或有我誤解了應該如何instanceof來工作?作爲字符串包含一些文本
(!x) instanceof Integer
所以它是將字符串轉換爲布爾(!'Hello'
是false
:
感謝,向好知道。 –