2 zyf4005 zyf4005 于 2016.04.28 10:00 提问

Thinking in java 可变 参数列表问题,请各位帮忙解决。
public class OverloadingVarargs3
    {
      static void f(float i, Character... args)
            {
        System.out.println("first");
       }
   static void f(char c, Character... args)
           {
        System.out.println("second");
       }
  public static void main(String[] args)
           {
      f(1, 'a');//此行一定调用第一个f();因为1默认为int型,只能向高精度转换;
      f('a', 'b');//此行按道理两个f()方法都能调用,因为'a'都能转换为float i和char c;
      }             //为什么结果是只调用了第二个f();
} /* Output:
      first
   second
*///:~

2个回答

w172087242
w172087242   Ds   Rxr 2016.04.28 10:09
已采纳

小类型匹配上了就不会隐式转型去调用第一个方法了。

因为重载方法的调用都是参数最符合调用。

zyf4005
zyf4005 好吧,先这样理解吧,
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.04.28 10:13

Thinking in java 之:可变参数列表
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java可变长参数列表
在Java中我们不知道自己有多少个参数要传递怎么办?可以试试可变长参数列表。语法格式为:type... args例如求n个数中的最大值,n事先不知道,那么可以这样写:private int max(int n1, int... args) { int result = n1; for (int n : args) { if (result < n) res...
java中可变参数列表重载问题
package cast_problems; public class OverloadingVarargs1 { static void f(Character... args) { System.out.print("first"); for(Character c : args) System.out.print(" " + c); System.out.p
java可变长参数列表
package com.liufei.VariableParametersList; /** * Created with IntelliJ IDEA. * User: lenovo * Author: liufei * Description: java可变长参数列表 */ public class VariableParametersList { public static v
求助打印预览的问题!
请帮忙解决,谢谢! 请帮忙解决,谢谢! 请帮忙解决,谢谢! 请帮忙解决,谢谢! 请帮忙解决,谢谢!
Java的可变参数列表
1.什么是Java的可变参数列表 请阅读下面的示例代码: public class Main { public void printf(String... args) { for (String s : args) { System.out.println(s); } } } 不难发现printf()方法的参数 是这样String... args 的形式 类似这
java函数参数后面加三个点——可变长度参数列表
转载:http://woshixy.blog.51cto.com/5637578/1020216Java类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。 public class test { public stati
Java可变参数关于参数列表含可变参数的方法重载的注意点
可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。 void f(Character... args){}
可变参数为什么要放参数列表最后?
为什么可变参数必须位于形参中的最后呢?
初学者,请各位帮忙,
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplic...
请各位高手帮忙!
编写一个Java应用程序,对于给定的一个字符串的集合,格式如:  {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}  要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出:  {aaa bbb ccc ddd hhh},{eee fff}, {ggg}  请将制作好的源文件保存为“t1.java”。  (1)分析问题,描