2

groovy 的文字列表['foo','bar','baz']是由 ArrayList(动态数组)还是 LinkedList 支持的?在不同情况下使用一种代替另一种会带来性能优势。

相关:有没有一种方法可以在运行时在 groovy 中找出变量的类型,类似于 JavaScript 的typeof运算符?

4

2 回答 2

5

查看对象上的类以了解它是什么:

groovy:000> [].class
===> class java.util.ArrayList

用 来检查它的类型instanceof,就像在 Java 中一样:

groovy:000> [] instanceof ArrayList
===> true

它告诉您对象是 ArrayList 还是 ArrayList 的子类。

或者测试它的类:

groovy:000> [].class == ArrayList
===> true

它告诉您对象的具体类是否为 ArrayList。

于 2012-05-18T16:45:30.780 回答
4

除非指定,否则它会将其创建为 ArrayList。def myList = [] as LinkedList您可以通过直接实例化或通过实例化来指定链表def myLinkedList = new LinkedList()

myList.getClass().name会告诉你类型。

于 2012-05-18T16:44:13.340 回答