Ksh*_*rma 55
使用as关键字是在Groovy中创建字符文字的方法.
'a' as char
Run Code Online (Sandbox Code Playgroud)
见讨论这里的Groovy的buglist.
tim*_*tes 21
如果这是一个变量,你也可以定义类型,所以:
import java.awt.image.*
new BufferedImage( 1, 1, BufferedImage.TYPE_INT_RGB ).with {
createGraphics().with {
// Declare the type
char aChar = 'a'
// Both ways are equivalent and work
assert fontMetrics.charWidth( aChar ) == fontMetrics.charWidth( 'a' as char )
dispose()
}
}
Run Code Online (Sandbox Code Playgroud)
(为长期的例子道歉,但我有脑冻结,并且想不到一个不同的标准java函数需要a char);-)
这也违背了问题的第二行,但我认为我会将其添加为完整性
在 Groovy 中可以通过三种方式使用字符字面量:
char c = 'c' /* 1 */
'c' as char /* 2 */
(char) 'c' /* 3 */
println Character.getNumericValue(c) /* 1 */
println Character.getNumericValue('c' as char) /* 2 */
println Character.getNumericValue((char) 'c') /* 3 */
Run Code Online (Sandbox Code Playgroud)
如果将像 'c' 这样的字符串字面量分配给变量,Groovy 会隐式地进行转换(请参阅 /* 1 * /)。如果你想使用没有变量的字符串文字,你必须使用 ...as char... (see /* 2 * /) 或 ...(char)... (see /* 3 * / )。
在不强制转换的方法中使用 char 文字是不可能的,因为 Groovy 只有必须强制转换为 char 的字符串文字。
println Character.getNumericValue('c') // compile error
Run Code Online (Sandbox Code Playgroud)