我收到以下错误消息
G:\CIS260\Assignments>javac PhoneNumber.java
PhoneNumber.java:45: error: incompatible types
number = decode(c);
^
required: int
found: String
1 error
在班级的开头我有
char c;
private int number = 0
这使得它成为一个int所以我理解为了编译下一行我必须有两个相同的数据类型。我的理解是
str[1].valueOf(number);
number = decode(c);
public static String decode(char c){
switch (c) {
应该使变量NUMBER成为一个字符串,使得解码和数字相等的数据类型,因为它们都是字符串。
我觉得我可能会忘记一个步骤来制作两种字符串数据类型。有什么想法吗?
答案 0 :(得分:1)
是的,你将数字声明为整数。
所以你应该使用Integer.ParseInt来投射它。
答案 1 :(得分:1)
您的方法public static String decode(char c)
返回String
的值,但变量number
接受值String
,该值被声明为Integer
< / p>
尝试返回类型Integer
,如public static int decode(char c)
答案 2 :(得分:1)
您的方法返回String
。
您正尝试将返回的字符串存储在int
。
Java不会像这样自动将字符串转换为整数。您必须明确地进行转换。您可以使用Integer.parseInt
:
int number = Integer.parseInt(decode(c));
请注意,如果返回的字符串实际上不是有效整数,则会抛出NumberFormatException
。
答案 3 :(得分:1)
char c = 0; //未声明和初始化
number = Integer.parseInt(decode(c));