在构造函数参数中传递byte时获取错误

时间:2014-05-14 07:38:49

标签: java

运行此代码时出现编译时错误,错误是构造函数示例(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();
  }
}

1 个答案:

答案 0 :(得分:7)

在Java中,文字在编译时被解析为基元。 4被解析为新的int变量。这意味着您尝试使用byte类型填充int变量,这是不允许的。将其更改为:

this((byte)4);

这是如何运作的?

通过在值之前指定(<type>),您可以调用显式广告。这意味着在基元的情况下,您正在更改值的类型。在这种情况下,您要告知运行时间您要将int 4转换为byte 4