通常提供API函数的时候,会实现多种参数类型,比如:log4j里面获取log对象,可以传string,当然也可以更方便的传class进去自动转string
public static Logger getLogger(String name)
{
return LogManager.getLogger(name);
}
public static Logger getLogger(Class clazz)
{
return LogManager.getLogger(clazz.getName());
}
1.下面这个例子重载了参数类型为Object, 我们调用的时候传入一个String参数,既满足Object又满足String,结果会如何呢?
public class Overload {
public static void log(Object o) {
System.out.println("log -object");
}
public static void log(String o) {
System.out.println("log -string");
}
public static void main(String[] args) {
log("how");
}
}
//输出 log -string
2. 那么下面改掉调用的方法,new出一个String的Object对象来,结果如何呢?
public static void main(String[] args) {
Object a = new String("xx");
log(a);
}
//输出 log -object
3.好吧,如果不强制指定类型为Object呢?
public static void main(String[] args) {
log(new String("xx"));
}
//输出 log -string
总结:在提供Object类型重载的时候,函数还是会根据继承树从下往上找对应的重载实现。
提供Object类型参数的好处也是明显的,否则 log(Long l),log(Byte b)就全得实现一次了(当然固定类型也是推荐全部实现的,但是对于程序中自定义的类就不好办了,无法提供默认操作)
看String的valueOf函数就重载了Object参数:
public static String valueOf(Object obj)
{
return obj != null ? obj.toString() : "null";
}
分享到:
相关推荐
- `public string GetTime(object all)`: 定义了一个名为`GetTime`的公共方法,它接受一个`object`类型的参数`all`,并返回一个`string`类型的值。 2. **Try-Catch块**: - 使用了`try-catch`结构来捕获可能发生...
在这个主题中,我们将深入探讨如何使用Java反射来调用不同类型的参数方法,包括无参方法、Object类型参数的方法、基本类型参数的方法以及数组参数的方法,以及如何调用私有方法。 首先,要调用无参方法,我们可以...
### Spring MVC 无法直接接收 List 类型参数的问题详解 #### 问题背景 在 Web 开发过程中,前后端数据交互是必不可少的一部分。对于基于 Java 的 Spring MVC 框架而言,处理这种交互通常需要理解如何正确地接收前端...
实现WCF支持HTTP请求调用容易,但要实现类似MVC的ACTION及WEB API那样的灵活,那就得花费点功夫,为...因为如果WCF的参数为普通类型(即:值类型),那么调用很容易,也支持HTTP的多种请求方法,比如常见的:GET,POST
1. Object类型是JavaScript中最为基础和常用的引用类型。它可以用来模拟现实世界中的对象模型,存储键值对集合。 - 创建Object对象有两种方法: - 构造函数方式:var obj = new Object(); obj.name = "张三"; obj...
JavaScript函数参数接收Object变量是一个常见的编程操作,尤其是在处理复杂数据结构时。JavaScript是一种动态类型的语言,这意味着你可以在函数参数中传递任何类型的值,包括对象。以下是对这一主题的详细讲解: 1....
在Pandas中,如果需要将object类型的列转换为数值类型,可以使用`convert_objects`方法,并设置`convert_numeric=True`参数。例如,如果有一个名为`dt_df`的DataFrame,其中包含object类型的列需要转换,可以这样做...
3. **其他属性** - 除了上述两个属性之外,`<object>` 标签还支持一系列其他的属性,如 `type` (用于指定对象的MIME类型)、`width` 和 `height` (定义对象的尺寸) 以及 `param` 子元素 (用于定义具体的参数)。...
两者都支持参数传递,可以有默认参数和变长参数列表。 5. **单元系统**:Object Pascal的源代码被组织成单元(Units),便于模块化开发和代码重用。 **面向对象特性** 1. **构造函数与析构函数**:用于对象的初始...
最近用多线程用的比较多自己...毕竟从泛型类型传入参数向上转型的objcet类型的参数调用带参的多线程很容易,而将object类型还原成泛型却很难。 复杂参数的多线程,如果方法带有参数ref或out就不能使用带参数的多线程。
为了解决这些问题,Java引入了泛型,允许在定义类、接口和方法时使用类型参数,如List,这里的T称为类型参数,代表一个未知的类型。这样,我们可以在编译时就确保类型的安全性,避免了运行时的类型转换。 泛型的一...
1. 变量与常量:Object Pascal支持声明各种类型的变量和常量,包括整型(Integer)、浮点型(Real)、字符型(Char)等,并且可以指定变量的作用域,如在函数内部声明的局部变量或在类中声明的成员变量。 2. 函数与...
这里的两个参数非常关键:`object sender`代表触发事件的对象,而`EventArgs e`(或其派生类)包含了事件的具体数据。 #### 二、深入理解`object sender`与`EventArgs e` **1. `object sender`** `sender`参数是...
2. **初始化**: 分配内存后,会调用类型最匹配的构造函数,将传入`new`的参数传递给它。构造函数按照定义的顺序初始化实例字段,并可以调用基类的构造函数。 3. **构造器链**: 每个类型构造器在执行时,都会调用其...
【Object C语法快速入门】 Objective-C(简称ObjC)是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台。以下是一些Object C的基础语法知识点: 1. **方法调用**: - 在ObjC中,方法调用采用消息...
2. **多设备组合**: 在更大规模的部署中,OSD可以由不同类型的设备组合支持,例如使用HDD作为主要数据存储,SSD用于加速元数据访问。这样可以优化成本和性能。 3. **集群规模规划**: OSD的数量取决于存储需求、每个...
当我们遇到arraylist等只能传入object类型参数的类的时候,就需要用到包装类对基本数据类型进行一下包装 就这么说吧,java是一门完全面向对象的语言,所以在java中有些容器要求用一个对象,这时你总不能还用原来c++...
本文将详细讨论四种主要的参数类型:值类型参数、引用类型参数、输出参数和数组型参数。 1. 值类型参数: 值类型参数是最常见的参数类型,包括基本数据类型(如int、double、bool等)和结构体。当你传递一个值类型...
在Python的`json`模块中,`object_hook`是一个可选参数,用于在反序列化JSON对象为Python字典时执行的函数。这个函数接收一个包含键值对的字典(这些键值对是根据JSON格式解析出来的),然后返回一个自定义的对象...