当前位置:网站首页>[groovy] closure (Introduction to closure class closure | closure parametertypes and maximumnumberofparameters member usage)
[groovy] closure (Introduction to closure class closure | closure parametertypes and maximumnumberofparameters member usage)
2022-07-05 04:40:00 【Programmer community】
List of articles
- One 、 Closure class Closure brief introduction
- Two 、 Closure parameterTypes and maximumNumberOfParameters Member usage
- 3、 ... and 、 Complete code example
One 、 Closure class Closure brief introduction
Closure is Closure object , Closure There are many members in the class , And encapsulated functions , Here is Closure Class inheritance structure ;
/** * stay Groovy Represents any closure object . * <p> * Groovy Allow closure instances to be called in a short form . for example : * <pre> * def a = 1 * def c = { a } * assert c() == 1 * </pre> * In order to be able to use closures in your own subclasses in this way , * You need to provide a with any signature you want doCall Method . * This ensures that the {@link#getMaximumNumberOfParameters()} * and {@link#getParameterTypes()} stay * It works without any extra code . * If not provided doCall Method , You must use closures in long form , Such as * <pre> * def a = 1 * def c = {a} * assert c.call() == 1 * </pre> * * @author <a href="mailto:[email protected]">James Strachan</a> * @author <a href="mailto:[email protected]">John Wilson</a> * @author <a href="mailto:[email protected]">Jochen Theodorou</a> * @author Graeme Rocher * @author Paul King */public abstract class Closure<V> extends GroovyObjectSupport implements Cloneable, Runnable, GroovyCallable<V>, Serializable {
}Two 、 Closure parameterTypes and maximumNumberOfParameters Member usage
stay Closure class Closure in , There are the following
2
2
2 Members :
protected Class[] parameterTypes; protected int maximumNumberOfParameters;Class[] parameterTypes Is a parameter type , int maximumNumberOfParameters Is the maximum number of parameters required , When invoking closures , When you don't know what type of parameters to pass to a closure , Do not know how many parameters are passed , You can use Above
2
2
2 Members ;
The following code , Define a closure :
// Define closure // The closure receives 2 Parameters def closure = {
int a, String b ->}If you use closure Closure time , I don't know what type of parameters the closure receives , And the number of parameters , have access to println Print closure parameters ;
Print parameter type : Above
2
2
2 Parameters , The printed result is [int, class java.lang.String] ;
// Print parameter type println closure.parameterTypesNumber of print parameters :
// Number of print parameters println closure.maximumNumberOfParameters3、 ... and 、 Complete code example
Complete code example :
// Define closure // The closure receives 2 Parameters def closure = {
int a, String b ->}// Print parameter type println closure.parameterTypes// Number of print parameters println closure.maximumNumberOfParametersExecution results :
[int, class java.lang.String]2
边栏推荐
- [uniapp] system hot update implementation ideas
- Practice | mobile end practice
- Neural networks and deep learning Chapter 3: linear model reading questions
- Hypothesis testing -- learning notes of Chapter 8 of probability theory and mathematical statistics
- Wan broadband access technology V EPON Technology
- 如何进行「小步重构」?
- Power management bus (pmbus)
- Uncover the seven quirky brain circuits necessary for technology leaders
- Is there a sudden failure on the line? How to make emergency diagnosis, troubleshooting and recovery
- [phantom engine UE] realize the animation production of mapping tripod deployment
猜你喜欢

TPG x AIDU|AI领军人才招募计划进行中!

2022-2028 global and Chinese virtual data storage Market Research Report

Discussion on the dimension of confrontation subspace

线上故障突突突?如何紧急诊断、排查与恢复

Advanced length of redis -- deletion strategy, master-slave replication, sentinel mode
![[phantom engine UE] realize the animation production of mapping tripod deployment](/img/89/351641c3da7e2acdbf389bc298b75e.png)
[phantom engine UE] realize the animation production of mapping tripod deployment

Solution of circular dependency

Thematic information | carbon, carbon neutrality, low carbon, carbon emissions - 22.1.9

CUDA Programming atomic operation atomicadd reports error err:msb3721, return code 1

American 5g open ran suffered another major setback, and its attempt to counter China's 5g technology has failed
随机推荐
Components in protective circuit
Web开发人员应该养成的10个编程习惯
Function (error prone)
Data security -- 14 -- Analysis of privacy protection governance
[uniapp] system hot update implementation ideas
The difference between bundle, chunk and module
TPG x AIDU | AI leading talent recruitment plan in progress!
机器学习 --- 神经网络
File upload bypass summary (upload labs 21 customs clearance tutorial attached)
How to remove installed elpa package
[moteur illusoire UE] il ne faut que six étapes pour réaliser le déploiement du flux de pixels ue5 et éviter les détours! (4.26 et 4.27 principes similaires)
You Li takes you to talk about C language 7 (define constants and macros)
Mxnet imports various libcudarts * so、 libcuda*. So not found
2022-2028 global and Chinese equipment as a Service Market Research Report
[thingsboard] how to replace the homepage logo
Rk3399 platform development series explanation (network debugging) 7.29 summary of network performance tools
Cookie learning diary 1
Machine learning decision tree
10 programming habits that web developers should develop
This is an age of uncertainty