将 null 传递给首选 String 而不是 Object 的方法

2024-02-29

我的程序中遇到了一个问题,我用下面的一个小代码片段澄清了这一问题。谁能解释为什么会发生这种情况?

class ObjectnullTest {

    public void printToOut(String string) {

        System.out.println("I am null string");
    }


    public void printToOut(Object object)

        System.out.println("I am  null object");
    }



class Test {

    public static void main(String args[]) {

        ObjectnullTest a = new ObjectnullTest();
        a.printToOut(null);

    }
}

这总是打印I am null string .

我想知道原因,以便修改代码。


这是因为如果方法重载

最具体的方法是在编译时选择的。

由于 'java.lang.String' 是一个更具体类型比“java.lang.Object”。在您的情况下,选择以“String”作为参数的方法。

它清楚地记录在JLS http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf:

第二步搜索上一步确定的类型 成员方法。此步骤使用方法的名称和类型 用于定位可访问方法的参数表达式 并且适用,即可以正确调用的声明 关于给定的论点。

这样的方法可能不止一种, 在哪种情况下选择最具体的一种。描述符(签名 加上返回类型)最具体的方法是在运行时使用的方法 执行方法调度。

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

将 null 传递给首选 String 而不是 Object 的方法 的相关文章

  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 查看Java Agent修改的Java类的源代码

    我需要了解 Java 代理如何修改我的初始类 以便我能够理解代码的作用 build gradle configurations jar archiveName agent2 jar jar manifest attributes Prema
  • 什么是内部类的合成反向引用

    我正在寻找应用程序中的内存泄漏 我正在使用的探查器告诉我寻找这些类型的引用 但我不知道我在寻找什么 有人可以解释一下吗 Thanks Elliott 您可以对 OUTER 类进行合成反向引用 但不能对内部类实例进行合成 e g class
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • C# 中单个 & 符号的第二个含义是什么?

    我在 C 中使用了单个与号 来表示 检查second条件语句即使第一个是false 但以下似乎是不同的意思 of 总而言之 谁能解释一下如何i 1在下面的例子中有效吗 List
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • IntelliJ Idea:将简单的 Java servlet(无 JSP)部署到 Tomcat 7

    我尝试按照教程进行操作here http wiki jetbrains net intellij Creating a simple Web application and deploying it to Tomcat部署 servlet
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • 按降序排序映射java8 [重复]

    这个问题在这里已经有答案了 private static
  • Tomcat 6 未从 WEB-INF/lib 加载 jar

    我正在尝试找出我的 tomcat 环境中的配置问题 我们的生产服务器正在运行 tomcat 安装并从共享 NFS 挂载读取战争 然而 当我尝试使用独立的盒子 及其配置 进行同样的战争时 我收到下面发布的错误 有趣的是 如果我将 WEB IN
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • titledBorder 标题中的图标

    您好 是否可以在 titledBorder 的标题中放置一个图标 例如以下代码 import java awt GridLayout import javax swing JFrame import javax swing JLabel i
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • Java 的“&&”与“&”运算符

    我使用的示例来自 Java Herbert Schildt 的完整参考文献 第 12 版 Java 是 14 他给出了以下 2 个示例 如果阻止 第一个是好的 第二个是错误的 因此发表评论 public class PatternMatch
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • 使用 MiniProfiler 进行直接 ADO.net 调用

    对于那些 C 和分析器极客来说 这个问题很愚蠢 我是 C 新手 基本上是 C 开发人员 如果使用的话我可以分析数据库查询dbproviderfactory 但我无法在直接使用 ado net 调用时分析它 原始SqlConnection S
  • GlobalSession 范围的 beans 是否从 spring 5 中删除了?为什么?

    1 Spring 5 中是否删除了全局会话范围的 beans 官方文档不再提及 SCOPE GLOBAL SESSION 不再是 RequestAttributes 的一部分 春季 4 https docs spring io autore
  • 无法在 OSX yosemite 上构建 Java 项目

    我被以下错误阻止 com sun tools javac util Context put Ljava lang Class Ljava lang Object V 这是完整的跟踪 project git master gradle jar
  • Ruby 中的计时器性能

    我正在寻找一个演示 ruby 计时器的在线示例 并发现了下面的代码 它按预期工作 但是这个简单的程序使用 30Mo 内存 如 Windows 任务管理器中所示 和太多的 CPU 有意义吗 多谢 def time block start ti
  • 选择 pandas 中多索引列的子级别

    我生成一个像这个例子一样的多索引数据框 import pandas as pd import numpy as np iterables co1 co2 co3 co4 age weight multi pd MultiIndex from
  • 如何强制依赖项包含具有特定版本号的工件

    尝试使用 Maven 构建 GWT 项目时出现此错误 您的项目声明对 gwt user 2 6 0 的依赖 这个插件是 至少为 gwt 版本 2 7 0 设计 我发现 gwt user 2 6 0 是通过 com google gwt ev
  • ScanResult 功能解读

    我想分析 ScanResult 的功能字符串 但是 名称最多分组在四个方括号中 例如 WPA PSK TKIP CCMP WPA2 PSK TKIP CCMP WPS ESS 考虑到某些名称可能出现在不同的括号中 是否有某种文档描述哪个括号
  • 当用户删除 .app 时,卸载该 .app 安装的项目,包括 SMJobBless 助手

    简短版本 是否可以删除应用程序设置的帮助工具 SMJobBless 等 当应用程序被删除时 如果是这样 怎么办 长版本 不幸的是 我们正在开发的Mac应用程序需要管理员权限才能执行偶尔的操作 并且即使应用程序本身没有运行 它也需要一个后台任
  • 如何在android中使用textView进行页面卷曲?

    我发现了很好的 harism 项目 它可以实现漂亮的分页效果 如以下链接https github com harism android page curl https github com harism android page curl
  • 在子菜单qt中创建滚动条?

    我有一个地图应用程序和一个子菜单 其中动态添加的对象 即地图上的点 添加到子菜单中 具体取决于加载的图层 我可以通过单击相应的子菜单项来隐藏每个单独的对象 即一个点 有什么办法可以组织子菜单吗 当有很多点 即 100 时 整个子菜单会占据屏
  • 在 Oracle 数据库中使用 JdbcTemplate 插入时间戳 (ORA-01858)

    我已经阅读了很多有关此错误的内容 但仍然没有发现错误 我正在使用 JdbcTemplate 在某个带有时间戳列的表中插入一行 我很确定时间戳是问题所在 就好像从插入中删除它工作正常一样 My code private static fina
  • 如何将SVN中的分支与所有提交历史合并回主干?

    如何将SVN中的分支与所有提交历史合并回主干 我知道在 Git 中我可以使用 merge squash SVN中有类似的命令吗 我使用的是SVN 1 6 对于 Subversion 1 5 或更高版本 合并记录在本地工作副本的 svn me
  • Python中的嵌入层:如何正确使用Torchsummary?

    这是一个最低限度工作 可重现的示例 import torch import torch nn as nn from torchsummary import summary class Network nn Module def init s
  • Django OperationalError:没有这样的列:在 pythonanywhere 上

    首先 我能够修复导入错误 我发现这是因为pythonanywhere的Django版本没有更新 所以我将pythonanywhere上的Django从1 x x升级到2 0 9 错误是这样的 导入错误 无法导入名称 路径 django ve
  • 调用未定义的函数 ssh2_connect()

    connection ssh2 connect SFTP SERVER 22 ssh2 auth password connection SFTP USERNAME SFTP PASSWORD sftp ssh2 sftp connecti
  • 如何比较 Joda DateTime 对象与可接受的偏移量(容差)?

    我想知道有没有标准的APIJodaTime比较 2DateTime具有指定公差的物体 我正在寻找一种最好使用的单线Joda标准API 不适用于时间算术表达式 例如这个帖子 https stackoverflow com questions
  • 将变量从 PHP 传递到 Smarty

    我有两个脚本 一个在 php 中 一个在 tpl 中 我需要将 php 中的变量传递给 tpl 我尝试了这个 但没有任何作用 但不知何故 它可以工作一两天 然后 显示空白 如果我创建另一个PHP脚本只是为了回显变量 它起作用了 PHP代码
  • Angular2 - 带有语言的路线

    您好 我想使用以下格式的语言创建路线 www domain com lang sometimes Example www domain com en sometimes www domain com de sometimes 是否可以编写类
  • 如何将 React 应用程序捆绑到服务器上的子目录中?

    我有一个在本地主机上开发的 React 应用程序 我想将其复制到服务器上名为 vensa 的子目录中 我的 webpack 配置文件看起来像这样 const ExtractTextPlugin require extract text we
  • 将 null 传递给首选 String 而不是 Object 的方法

    我的程序中遇到了一个问题 我用下面的一个小代码片段澄清了这一问题 谁能解释为什么会发生这种情况 class ObjectnullTest public void printToOut String string System out pri