如何专门为具有m1(字节)和m1(int)签名的类提供字节值

时间:2018-01-27 10:48:45

标签: java overloading

public class HelloWorld
{ 
   public void m1(int i) 
   { 
      System.out.println("int-arg"); 
   } 
   public void m1(byte j) 
   { 
      System.out.println("byte-arg"); 
   }  
   public static void main(String []args)
   { 
      HelloWorld n=new HelloWorld(); 
      n.m1(12); 
   } 
}

O / P:int-arg

问题: 12也是int类型和字节类型。所以在这种情况下,int是每次完全匹配。那么如果我想调用m1(byte)方法,我应该提供什么值? 感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用类型声明它或将其强制转换

byte b = 12;
n.m1(b);

或演员

 n.m1((byte)b);

答案 1 :(得分:1)

正如其他人所说,你需要施展它。

在Java中,普通数字(例如:12)默认为int,如果数字有小数(例如:12.0),则默认为 float double类型(谢谢@Sushil为更正)。有一些后缀强制某些类型,但不适用于所有类型(例如:12L很长,12.0f是浮点数)。

答案 2 :(得分:0)

您需要在传递值之前进行强制转换。

n.m1((byte)12);