Source From Here
Question
I need to store a value in a variable in one method and then I need to use that value from that variable in another method or closure. How can I share this value?
How-To
In a Groovy script the scoping can be different than expected. That is because a Groovy script in itself is a class with a method that will run the code, but that is all done runtime. We can define a variable to be scoped to the script by either omitting the type definition or in Groovy 1.8 we can add the @Field annotation.
Question
I need to store a value in a variable in one method and then I need to use that value from that variable in another method or closure. How can I share this value?
How-To
In a Groovy script the scoping can be different than expected. That is because a Groovy script in itself is a class with a method that will run the code, but that is all done runtime. We can define a variable to be scoped to the script by either omitting the type definition or in Groovy 1.8 we can add the @Field annotation.
- import groovy.transform.Field
- var1 = 'var1'
- @Field String var2 = 'var2'
- def var3 = 'var3'
- void printVars() {
- println var1
- println var2
- println var3 // This won't work, because not in script scope.
- }
This message was edited 3 times. Last update was at 18/01/2017 16:53:45
沒有留言:
張貼留言