JAVA方法重载优先级

article/2025/10/3 21:26:41

JAVA方法重载优先级

String的valueOf方法,图一
该方法正常执行,没有报空指针异常,是因为调用了,String类中的如下方法:
图二
由于图一valueOf方法中传入的参数为Object类型,所以调用了该方法。
在这里插入图片描述
接下来看上面的方法执行结果,报了空指针异常。它调用的方法为
在这里插入图片描述
那么为什么图三中没有调用图二中的方法哩,却调用了图四中的方法。

我们知道Java有八大基本类型和引用类型,还有一个特殊的null类型。null类型不能转换为八大基本类型,但是可以转换为任意引用类型,任意引用类型又都默认继承Object类。那么null这个特殊类型是可以用Object接受的。如下
在这里插入图片描述
由此可见,java 方法的重载是有优先级的。String类中valueOf()方法单个入参的总共有如下几种:
String valueOf(Object obj);
String valueOf(char data[]);
String valueOf(boolean b);
String valueOf(char c);
String valueOf(int i);
String valueOf(long l);
String valueOf(float f);
String valueOf(double d);
String类中提供的valueOf(数据类型)方法的参数类型为什么不能是byte类型?
入参为null类型时是可以调用 String valueOf(Object obj);String valueOf(char data[]);这两个方法的。但是由于JLS 中规定:
Java的重载解析过程是以两阶段运行的。第一阶段 选取所有可获得并且可应用的方法或构造器。第二阶段在第一阶段选取的方法或构造器中选取最精确的一个。如果一个方法或构造器可以接受传递给另一个方法或构 造器的任何参数,那么我们就说第一个方法比第二个方法缺乏精确性[JLS 15.12.2.5]。
由于Stirng valueOf(char data[])中的参数类型是可以传入String valueOf(Object obj)中的。但是反过来,就不一定行了。所以,这就是为什么图三中没有调用图二中的方法哩,却调用了图四中的方法。


http://chatgpt.dhexx.cn/article/wCFvj6Gr.shtml

相关文章

ROS学习笔记(一)#ROS系统及RoboWare的安装

0.前言 本人目前研一在读,学习ROS机器人也有半年多了,开此博客决定把ROS学习从新捋一遍.目前使用Ubuntu 16.04 ROS-Kinetic。 1.ROS安装 电脑选择这个教程…

ubuntu18.04 安装 roboware-studio

RoboWare Studio是一个ROS集成开发环境。与ROS匹配性比起其他IDE更好,可以用它开发 ROS更加简单、并且在官网ros wiki中有详细的使用教程。本文主要是在Ubuntu18.04中安装RoboWare Studio。 1.输入指令安装必要的编译程序必须软件包 sudo apt-get install build-es…

ROS集成开发环境 --- RoboWare(安装及学习笔记)

后附 RoboWare中文教程网盘链接 DesignerStudioViewer RoboWare Studio是什么 v1.2.0 32位 debv1.2.0 64位 debv1.2.0 使用手册 pdf RoboWare Studio是一个ROS集成开发环境.使ROS开发更加直观、简单,并且易于操作.可进行ROS工作空间及包的管理,代码编…

ROS学习系列(一):ubuntu16.04下安装 ROS IDE RoboWare Studio 教程

1.下载RoboWare Studio安装包 不要信从官网下载http://www.roboware.me/#/home 这个网站压根就进不去。 从github上下载安装包,链接https://github.com/TonyRobotics/RoboWare/tree/master/Studio,参考手册这个网站也有。 注意版本: 例如目…

在Ubuntu18.04中安装ROS IDE RoboWare Studio 和Visual Studio Code

安装ROS IDE 前言一、安装RoboWare Studio二、安装Visual Studio Code参考文献 前言 一款好的开发工具可以是开发效率提升,ROS官方推荐了常用的ROS开发环境http://wiki.ros.org/IDEs,下文将介绍安装我常用的两种开发环境。 一、安装RoboWare Studio 首先&#xf…

ROS集成开发环境IDE----RoboWare开源

RoboWare中文官网: http://cn.roboware.me/#/home github: https://github.com/TonyRobotics/RoboWare-Studio 目前主要有三款软件产品:DesignerStudioViewer,如下 . . . ---- RoboWare Studio - Open Source RoboWare Studio…

Roboware Studio下载、安装、及解决办法

RoboWare官网:http://www.roboware.me/#/home 如果没有VPN我这里有资料链接: https://pan.baidu.com/s/17q5U1HlGGL0inqcxLuELmw 提取码: upav 选择合适的版本下载,注意32位与64位之分。下载完以后先不要着急安装,为了更好地使用RoboWare St…

Robotium

本文内容:基于Android Studio 的Android自动化测试框架Robotium的开发 版权声明:本文为原创文章,未经允许不得转载 博客地址:http://blog.csdn.net/kevindgk 简介 RobotiumRobotium Recorder 一白盒测试 创建Android项目安装Rob…

ROS笔记(4) RoboWare Studio 的安装

ROS笔记(4) RoboWare Studio 的安装 1. RoboWare Studio的下载2. RoboWare Studio的安装3. RoboWare Studio的开启4.打开工作区1. RoboWare Studio的下载 RoboWare Studio是ROS的一款IDE,基于微软开源的VSCode开发,功能比较强大,使得开发更加快速、简单,是目前较好用的R…

RoboWare Studio入门教程(一)

部分参考:https://blog.csdn.net/qq_41450811/article/details/80305846 应该从ROS的通信机制开始说起,话题通信机制和服务通信机制,还有一种参数管理机制本次不予展开。 本次先以服务通信机制为例子。 服务(Service&#xff0…

RoboWare安装教程

RoboWare Studio安装教程 通常ROS的程序都是用C和Python开发的,为了提高开发的效率,我们建议用IDE来写代码。目前在Ubuntu上已经有许多IDE支持ROS开发,比如Eclipse、Qt Creator。不过这些IDE配置起来会比较麻烦,推荐一款适配ROS的…

ROS IDE - RoboWare Studio 安装与使用教程

1. 安装: 去官网 http://www.roboware.me/#/ 下载安装包后正常安装即可。 2. 配置: 安装后会提示git不是最新版本,依次执行下面的命令可更新至最新版: git --version sudo add-apt-repository ppa:git-core/ppa sudo apt-get u…

ROS IDE —— RoboWare Studio

RoboWare Studio是ROS的一款IDE,但是它的功能又比较强大,使得开发更加快速、简单。 要安装RoboWare Studio,首先确保你的Ubuntu版本是14.04或者16.04版本,目前只支持这两个版本,并且完成了ROS的安装和配置&#xff0c…

RoboWare Studio的安装

RoboWare是什么? RoboWare Studio是国人开发的一个ROS系统IDE(集成开发环境),基于微软开源的VSCode内核开发(因此这个界面跟VSCode非常像),功能比较强大,使得开发更加快…

RoboWare Studio安装教程

RoboWare官网:http://www.roboware.me/#/home 选择合适的版本下载,注意32位与64位之分。下载完以后先不要着急安装,为了更好地使用RoboWare Studio,我们需要事先安装两个比较常用的插件。 1、为了支持Python调试功能,…

Roboware Studio教程 (ROS kinetic)

RoboWare Studio是一个ROS集成开发环境。它使 ROS开发更加直观、简单、并且易于操作。可进行ROS工作区及包的管理、代码编辑、构建及调试。 下载链接:https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ 密码:3iuk 准备 安装前,请查看系统…

roboware的使用

安装 roboware相当于一个专门适配ROS的vscode,功能性十分强大,几乎所有与ROS相关的操作都可以在IDE中完成。目前官网已经挂掉,可以选择百度云安装: https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ 密码:3iuk 或者去…

RoboWare Studio 安装教程与可能问题解决

一、下载RoboWare源码 途径1:官方GitHub连接:https://github.com/TonyRobotics/RoboWare 途径2:RoboWare官网:http://www.roboware.me/#/home (我选择了途径1) 下载完后解压,我们可以看到文…

round() 函数

查看更多 https://www.yuque.com/docs/share/50c54ca6-17b5-4a09-959b-d8be30a16520

RowBounds 的使用

generator 添加 查询的写法 offset偏移量 size 每页的大小