运行此代码时出现编译时错误,错误是构造函数示例(int)未定义。
public class Example
{
public Example()
{
this(4);//error
}
public Example(byte var)
{
System.out.println(var);
}
public static void main(String[] args)
{
Example t6 = new Example();
}
}
答案 0 :(得分:7)
在Java中,文字在编译时被解析为基元。 4
被解析为新的int
变量。这意味着您尝试使用byte
类型填充int
变量,这是不允许的。将其更改为:
this((byte)4);
这是如何运作的?
通过在值之前指定(<type>)
,您可以调用显式广告。这意味着在基元的情况下,您正在更改值的类型。在这种情况下,您要告知运行时间您要将int 4
转换为byte 4
。