Java 在groovy中定义类型为的变量
这有效吗Java 在groovy中定义类型为的变量,java,groovy,Java,Groovy,这有效吗 def CallableStatement st try { ... st = sqlConn.prepareCall("call....") ... } 我真正担心的是,您能否同时指定类型和使用def 这有效吗 def CallableStatement st try { ... st = sqlConn.prepareCall("call....") ... } 是与否 是的,因为编译器将愉快地编译和执行上面的代码,但不是,因为将某个类型键入
def CallableStatement st
try {
...
st = sqlConn.prepareCall("call....")
...
}
我真正担心的是,您能否同时指定类型和使用def
这有效吗
def CallableStatement st
try {
...
st = sqlConn.prepareCall("call....")
...
}
是与否
是的,因为编译器将愉快地编译和执行上面的代码,但不是,因为将某个类型键入为def
并将其指定为显式类型确实没有任何意义。基本上,您所说的是“这可以有任何类型,但必须是CallableStatement
”。在我看来,上面的定义应该会产生一个编译器错误
实际上,这一定义:
def CallableStatement st
似乎与以下内容相同:
CallableStatement st
如下所示:
class Foo {
def List l;
}
new Foo().l = new ArrayList() // this works
new Foo().l = "ddd" // this throws a GroovyCastException