“无法取消引用字符”错误
Posted
技术标签:
【中文标题】“无法取消引用字符”错误【英文标题】:"Char cannot be dereferenced" error 【发布时间】:2011-07-28 11:31:29 【问题描述】:我正在尝试使用char方法isLetter()
,它应该返回对应于字符是否为字母的布尔值。但是当我调用该方法时,我收到一条错误消息,指出“无法取消引用 char”。我不知道取消引用 char 意味着什么或如何修复错误。有问题的陈述是:
if (ch.isLetter())
....
....
有什么帮助吗?取消引用 char 是什么意思?如何避免这样做?
【问题讨论】:
不要尝试在原语上调用方法。 Character.isLetter(ch); 怎么样 【参考方案1】:如果Character.isLetter(ch)
看起来有点罗嗦/难看,您可以使用静态导入。
import static java.lang.Character.*;
if(isLetter(ch))
else if(isDigit(ch))
【讨论】:
【参考方案2】:char 类型是一个原始类型——不是一个对象——所以它不能被取消引用
取消引用是访问引用所引用的值的过程。由于 char 已经是一个值(不是引用),所以它不能被取消引用。
使用Character
类:
if(Character.isLetter(c))
【讨论】:
+1 - 尽管还应该注意Character.isLetter(c)
中的.
表示使用Character
的静态方法。【参考方案3】:
char
没有任何方法 - 它是 Java primitive。您正在寻找 Character 包装类。
用法是:
if(Character.isLetter(ch)) //...
【讨论】:
【参考方案4】:我猜ch
被声明为char
。由于char
是原始数据类型而不是对象,因此您不能从中调用任何方法。你应该使用Character.isLetter(ch)
。
【讨论】:
以上是关于“无法取消引用字符”错误的主要内容,如果未能解决你的问题,请参考以下文章
Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误