如何解决Java中java.lang.String与String类型不兼容的赋值错误?
解决Java类型不兼容错误:java.lang.String无法转换为String
String.java:8: error: incompatible types: java.lang.String cannot be converted to String
lastname = sc.next();
可能的原因及解决方法:
自定义类名冲突:你大概率在当前项目中定义了名为
String的类,这会和Java核心库的java.lang.String产生命名冲突。编译器会优先识别当前包下的自定义类,导致sc.next()返回的标准字符串类型无法匹配你的自定义String类型。- 方案1:重命名自定义
String类(比如改为UserString),避免和核心类名重复。 - 方案2:若必须保留自定义类名,声明
lastname时显式使用全限定类名:java.lang.String lastname;。
- 方案1:重命名自定义
变量声明类型错误:检查
lastname的声明语句,确认它的类型是Java标准的String,而非其他自定义类或错误类型。如果声明有误,修正为String lastname;即可。错误导入语句:查看代码顶部的
import语句,若存在导入自定义String类的语句,删除该导入,确保默认使用java.lang.String。
内容的提问来源于stack exchange,提问作者Krishna Yadav
相关产品推荐
相关产品推荐

