Java调用重载方法[重复]

2024-02-14

考虑这个代码段

class StockServer { 

   StockServer(String company, int Shares,double currentPrice, double cashOnHand) {}

   double buy(int numberOfShares, double pricePerShare) { 
        System.out.println("buy(int,double)"); 
        return 3.0;
   } 

   float buy(long numberOfShares, double pricePerShare) {     
        System.out.println("buy(long,double)");
        return 3.0f; 
   } 
}

如果我执行这行代码,

StockServer a = new StockServer("",2,2.0,2);
byte b=5;
a.buy(b,2);

结果是: buy(int,double)

我想知道编译器如何决定执行哪个方法?


如果您有重载方法,编译器会使用方法签名找出最具体的候选方法。在这种情况下,两个签名是

buy(int, double)

and

buy(long, double).

请注意,返回类型不是签名的一部分。您正在使用 buy(byte, int) 调用方法。由于 int 比 long 更具体,因此调用第一个方法。更具体地说,int 是包含字节的两种类型中较小的一个。

然而,编译器始终无法找出最具体的候选者:

public static void foo(long a, double b) {
    // body
}

public static void foo(double a, long b) {
    // body
}

foo(3, 4);

该代码将无法编译,因为不清楚其中的方法是什么意思。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java调用重载方法[重复] 的相关文章

  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • 无论线程如何,对象是否总是能看到其最新的内部状态?

    假设我有一个带有简单整数计数变量的可运行对象 每次可运行对象运行时该变量都会递增 该对象的一个 实例被提交以在计划的执行程序服务中定期运行 class Counter implements Runnable private int coun
  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • 如何让“循环”泛型在 Java 中工作?

    我在编译以下涉及一些泛型的代码时遇到错误 public abstract class State
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • 了解Kafka流groupBy和window

    我无法理解 kafka 流中的 groupBy groupById 和窗口的概念 我的目标是聚合一段时间内 例如 5 秒 的流数据 我的流数据看起来像 value 0 time 1533875665509 value 10 time 153
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • Janusgraph 0.3.2 + HBase 1.4.9 - 无法设置 graph.timestamps

    我在 Docker 容器中运行 Janusgraph 0 3 2 并尝试使用运行 HBase 1 4 9 的 AWS EMR 集群作为存储后端 我可以运行 gremlin server sh 但如果我尝试保存某些内容 我会得到粘贴在下面的堆
  • Java 8 方法签名不一致

    Java 8 为我们提供了具有很长签名的新方法 如下所示 static
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • 为什么 java.util.Arraylist#clear 按照 OpenJDK 中的方式实现?

    http grepcode com file repository grepcode com java root jdk openjdk 6 b14 java util ArrayList java 473 http grepcode co
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma

随机推荐

  • 集合已修改;枚举操作可能无法执行。锁到处都在用怎么可能?

    这是一个只有我在编写和使用的小程序 现在我将编写使用导致此问题的哈希集的所有区域的代码 我不明白这怎么可能 该项目仅在主窗口中使用 hsProxyList 是一个哈希集 HashSet
  • 在 C# 中列出目录中的大量文件

    我正在尝试获取特定目录中的文件列表 其中包含超过 2000 万个文件 每个文件大小从 2 KB 到 20 KB 不等 问题是我的程序每次都会抛出内存不足异常 而像 robocopy 这样的工具可以很好地将文件夹复制到另一个目录 没有任何问题
  • 如何在 Yii2 查询中使用不等于

    我想用一个yii2我想在其中检查不等于条件的查询 我这样尝试过 但没有给出想要的结果 我该怎么做 details MovieShows find gt where movie id gt id gt andWhere location id
  • 有没有可以预览 Markdown 文件的 Vim 插件? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我喜欢标记和 Mou 编辑器 它具有即时预览渲染结果的强大功能 所以我想知道 有没有办法在 Vim 中做
  • 科尔多瓦可以捏合放大吗

    这方面的信息并不多 而且我能找到的信息也非常模糊且无益 我的意思是希望我的 cordova phonegap 应用程序中的一个页面具有可以捏合以放大和平移的图像 这可能吗 如果可以 我该怎么做 在本机代码中 紧接此行之后 super loa
  • $_SERVER['REMOTE_USER'] 可以被欺骗吗?

    我遇到一种情况 我正在打开基于 SERVER REMOTE USER 变量的文件 我不认为这是可以欺骗的 但只是想确认一下 我不想让自己容易受到任意文件读取的影响 是的 该用户名是远程用户指定的用户名 您还需要验证密码 如果密码是由您的服务
  • 从两组日期范围中查找差距日期范围 C#

    我有基准日期范围和测试日期范围 我需要获取基础和测试之间的差距 这意味着缺少基础中但不在测试中的日期范围 最好的方法是什么 Base Date Ranges 1 1 2012 1 10 2012 1 11 2012 1 25 2012 Te
  • 什么时候必须在 Javascript 中使用 new 关键字?

    有时我应该打电话new Foo 创建一个新的 foo 对象 但有时我可以调用Foo 创建它 一般来说 对于给定的函数 我如何知道使用哪个 什么是new关键字做什么 See 这个问题 https stackoverflow com quest
  • 如何取消对 jar 的签名?

    有没有办法取消 java jar 文件的签名 我尝试在开发环境中使用一些已签名的 jar 但遇到安全异常 因此我想取消对这些 jar 的签名 以便稍后在准备部署时对其进行签名 我不知道答案 但我会这样做 解压相关的 jar 文件 jar 只
  • 如何创建腾讯微博(qq)分享按钮?

    我需要实现相当于网站中文翻译的 Tweet 按钮 即not我已经得到的 在微博上分享 按钮 使用生成器here http open weibo com sharebutton 而是一个腾讯 QQ微博分享按钮 到目前为止我所做的 订阅微博 阅
  • 将 sed 的输出存储到变量中[重复]

    这个问题在这里已经有答案了 我想将文件的第二行存储到一个变量中 所以我这样做 sed n 2p myfile 我希望存储的输出sed命令写入名为的变量line 执行此操作的正确语法是什么 Use 命令替换 http tldp org LDP
  • CAD 爆炸图算法

    我正在制作一个程序来查看 3D CAD 模型 并希望构建自动分解视图 将看到的所有组件都是轴对称的 有些可能不是 但大多数是 我想找出一种算法 用于自动将组件中的零件移动到分解视图位置 这是我想通过算法实现的示例 当然不包括标签 我必须使用
  • NaN 和 None 有什么区别?

    我正在使用 pandas 读取 csv 文件的两列readcsv 然后将值分配给字典 这些列包含数字和字母的字符串 有时会出现单元格为空的情况 在我看来 读取该字典条目的值应该是None但反而nan被安排了 一定None更能描述空单元格 因
  • 类型“Observable<{}>”不可分配给类型“Observable |”布尔值'

    我试图跟随本教程 https angular io docs ts latest guide router html route config 但我收到错误 路径匹配 完整 我尝试改变 角度 路由器 to 3 0 0 beta 2 还是同样
  • 检查 Linux 系统上 python 多处理中的 fork 行为

    我必须从许多进程中访问一组大型且不可选取的 python 对象 因此 我想确保这些对象没有被完全复制 根据评论this https stackoverflow com questions 5549190 is shared readonly
  • 如何在 Intellij 13 中创建测试目录?

    我是一个使用 v13 的 Intellij 菜鸟 我有一个简单的 java 项目 默认 结构 如下所示 idea src com test mytestClass1 mytestClass2 现在 我想编写一个简单的测试 并将该代码放在 s
  • “latin-1”编解码器无法对字符进行编码

    我的代码适用于英语文本 但不适用于俄语 search text 我该如何修复它 错误文本 UnicodeEncodeError latin 1 编解码器无法对位置 41 46 中的字符进行编码 主体 不是有效的 Latin 1 如果您想以
  • C++ 从图中删除顶点

    3he 以下使用 boost 1 46 1 进行编译 include
  • 无法使用 MPMoviePlayerViewController 播放视频

    我使用以下 ViewController m 创建了一个新项目 当我运行该应用程序时 我可以看到一个预期来源 大小 38 100 250 163 的框 但它是黑色的并且没有视频播放 Xcode 中有一个奇怪的输出 2012 08 23 15
  • Java调用重载方法[重复]

    这个问题在这里已经有答案了 考虑这个代码段 class StockServer StockServer String company int Shares double currentPrice double cashOnHand doub