2

groovyのリテラルリストは['foo','bar','baz']、たとえばArrayList(動的配列)またはLinkedListによってサポートされていますか?さまざまな状況で一方を他方の代わりに使用すると、パフォーマンス上の利点があります。

typeof関連:JavaScriptの演算子と同様に、Groovyで実行時に変数のタイプを見つける方法はありますか?

4

2 に答える 2

5

オブジェクトのクラスを見て、それが何であるかを確認します。

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

instanceofJavaの場合と同様に、タイプをで確認します。

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 に答える