“无法取消引用字符”错误

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:未处理的内部错误

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理