RSS

カテゴリー別アーカイブ: Groovy

Groovy で独自パッケージのクラスを使うには

パッケージ package1 のクラス Class1 を使う例です。
ディレクトリ構造はつぎのようになります。Class1.class はgroovyc でコンパイルして作成します。

.
test_package1.gvy
test_package1.bat
.\package1
Class1.gvy
Class1.class

(ファイル test_package1.gvy)

import package1.*

obj = new Class1()
println obj.getName()

(ファイル package1\Class1.class のソース)

package package1

class Class1 {
def name = “Package1.Class1”
}

(実行コマンド: test_package1.bat)

groovy -cp package1\Class1.class test_package1.gvy Package1.Class1

 

 

次のようにクラスを後からロードして実行することもできます。

def class1

try {
class1 = Class.forName(‘package1.Class1’)
println class1.name
}
catch (ClassNotFoundException ex) {
println ‘Class not found.’
}

実行コマンドは、次のように簡単になります。

groovy test_package1A.gvy

 

 

広告
 
コメントする

投稿者: : 2012/08/16 投稿先 Groovy

 

タグ: ,

Groovy の配列とGroovy JDK の List クラス

/*

Groovy JDK の List クラスは配列に使われているようですが、それを確認するためのテストプログラムです。
これは、java.util.List も継承しているので、そのメソッドも使えることを確認しています。

*/

def list1 = []
println list1.class

list1.push(“addAll”)
list1.push(“asMutable”)
list1.push(“asSynchronized”)
list1.add(“collate”)
list1.add(“drop”)
list1.add(“dropWhile”)

/* java.util.ArrayList クラスのメソッド */
println list1.isEmpty()
println list1.lastIndexOf(“collate”)
println list1.get(0)

/* Groovy JDK の java.util.List クラスのメソッド */
println list1.drop(1)
println list1.asImmutable()

 

 

 
コメントする

投稿者: : 2012/08/15 投稿先 Groovy

 

タグ: , , ,

Groovy JDK と Java JDK のコレクション比較

Java JDK の java.util.List インターフェースのメソッド
(public interface List extends Collection)

* が付いているものは Collection インタフェースから継承。
これはインタフェースなので、実装しないと使えない。

boolean add(E o) *
void add(int index, E element)
boolean addAll(Collection c) *
boolean addAll(int index, Collection c)
void clear()
boolean contains(Object o) *
boolean containsAll(Collection c) *
boolean equals(Object o) *
E get(int index)
int hashCode() *
int indexOf(Object o)
boolean isEmpty() *
Iterator iterator() *
int lastIndexOf(Object o)
ListIterator listIterator()
ListIterator listIterator(int index)
E remove(int index)
boolean remove(Object o) *
boolean removeAll(Collection c) *
boolean retainAll(Collection c) *
E set(int index, E element)
int size() *
List subList(int fromIndex, int toIndex)
Object[] toArray() *
T[] toArray(T[] a) *

java.util.ArrayList クラスのメソッド

* が付いているものは List インタフェースから継承。

boolean add(E o) *
void add(int index, E element) *
boolean addAll(Collection c) *
boolean addAll(int index, Collection c) *
void clear() *
Object clone()
boolean contains(Object elem) *
void ensureCapacity(int minCapacity)
E get(int index) *
int indexOf(Object elem) *
boolean isEmpty() *
int lastIndexOf(Object elem) *
E remove(int index) *
boolean remove(Object o) *
protected void removeRange(int fromIndex, int toIndex)
E set(int index, E element) *
int size() *
Object[] toArray() *
T[] toArray(T[] a) *
void trimToSize()

—————————————————————————

Groovy JDK の java.util.List クラス

これはクラスなので実際に使用できる。

boolean addAll(int index, Object[] items)
List asImmutable()
List asSynchronized()
List collate(int size)
List collate(int size, int step)
List collate(int size, boolean keepRemainder)
List collate(int size, int step, boolean keepRemainder)
List drop(int num)
List dropWhile(Closure condition)
boolean equals(Object[] right)
boolean equals(List right)
Process execute()
Process execute(String[] envp, File dir)
Process execute(List envp, File dir)
Object first()
List getAt(Range range)
List getAt(EmptyRange range)
List getAt(Collection indices)
Object getAt(int idx)
Object head()
Object last()
List minus(Collection removeMe)
List minus(Iterable removeMe)
List minus(Object removeMe)
Set permutations()
List plus(int index, Object[] items)
List plus(int index, List additions)
List plus(int index, Iterable additions)
Object pop()
boolean push(Object value)
void putAt(int idx, Object value)
void putAt(EmptyRange range, Object value)
void putAt(EmptyRange range, Collection value)
void putAt(IntRange range, Collection col)
void putAt(IntRange range, Object value)
void putAt(List splice, List values)
void putAt(List splice, Object value)
List reverse()
List reverse(boolean mutate)
List reverseEach(Closure closure)
Set subsequences()
List tail()
List take(int num)
List takeWhile(Closure condition)
SpreadMap toSpreadMap()
List transpose()
List withDefault(Closure init)
List withEagerDefault(Closure init)
List withLazyDefault(Closure init)

 
コメントする

投稿者: : 2012/08/15 投稿先 Groovy

 

タグ: , , ,

Groovy でテキストファイル全体を配列として読み込むには

if (this.args.size() == 0) {
  println("Usage readfile Filename")
  System.exit(9)
 }
println this.args[0]
/*
 File オブジェクトの readLinesメソッドでファイル全体の内容を配列として取得できます。
*/
 def lines = new File(this.args[0]).readLines()
 println "line count = " + lines.size()
 
コメントする

投稿者: : 2012/08/14 投稿先 Groovy

 

タグ: , , ,

Groovy でテキストファイルを行ごとに読み込むには

if (this.args.size() == 0) {
  println("Usage readfile Filename")
  System.exit(9)
 }
println this.args[0]
/*
  File オブジェクトの eachLine メソッドで行ごとにファイルを読み込むことができます。
*/
 def file = new File(this.args[0])
 file.eachLine {
  line -> println line
 }
 
コメントする

投稿者: : 2012/08/14 投稿先 Groovy

 

タグ: , , ,

テキストファイル全体を読み込むには

if (this.args.size() == 0) {
  println("Usage readfile Filename")
  System.exit(9)
 }
println this.args[0]
/*
  File オブジェクトの text プロパティでファイル全体の内容を取得できます。
*/
 println(new File(this.args[0]).text)
 
コメントする

投稿者: : 2012/08/14 投稿先 Groovy

 

タグ: , , ,

Groovyで現在時刻を取得するには

/*

現在時刻を取得するには、java.util.Calendarクラスのインスタンスを取得してから、
getTime()メソッドで時刻を取得します。

Groovy ではgetTime()の代わりにtimeが使用できます。

*/

def now = Calendar.instance.time
println now
printf(“%tD%n”, now)

/*
Calendarの代わりに java.util.Dateクラス も使用できますが、このオブジェクトには推奨しないメソッドが
多く含まれています。
*/
printf(“%tD%n”, new Date())
printf(“%tT%n”, new Date())

/*
日付や時刻の要素は、下のようにint get(int field) メソッドで取得できます。

*/
def cal = Calendar.instance
def date = cal.get(Calendar.YEAR)
date += “/” + (cal.get(Calendar.MONTH) + 1)
date += “/” + cal.get(Calendar.DATE)
println date

def time = cal.get(Calendar.HOUR_OF_DAY)
time += “:” + cal.get(Calendar.MINUTE)
time += “:” + cal.get(Calendar.SECOND)
println time

 

 

 
コメントする

投稿者: : 2012/08/14 投稿先 Groovy

 

タグ: , , ,