gpt4 book ai didi

gradle - Gradle中 “def”和 “static def”之间的区别

转载 作者:行者123 更新时间:2023-12-03 03:45:52 40 4
gpt4 key购买 nike

作为标题,Groovy中这两个定义的确切区别是什么?

也许是文档问题,我什么也找不到...

最佳答案

没有static的方法声明将方法标记为实例方法。带有static的声明将使此方法静态-可以在不创建该类实例的情况下调用该方法-请参见https://www.geeksforgeeks.org/static-methods-vs-instance-methods-java/

groovy中的def将值定义为鸭子类型。值的功能不是由其类型决定的,它们会在运行时检查。在运行时可以回答是否可以在该值上调用方法的问题-请参见optional typing
static def表示该方法将返回鸭子类型的值,并且可以在没有该类实例的情况下调用该方法。

例:

假设您有以下两个类:

class StaticMethodClass {
static def test(def aValue) {
if (aValue) {
return 1
}
return "0"
}
}

class InstanceMethodClass {
def test(def aValue) {
if (aValue) {
return 1
}
return "0"
}
}


您可以调用 StaticMethodClass.test("1"),但必须先创建 InstanceMethodClass实例,然后才能调用 test-类似于 new InstanceMethodClass().test(true)

关于gradle - Gradle中 “def”和 “static def”之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58232341/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com