`
sw1982
  • 浏览: 511388 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Object类型的参数

阅读更多

通常提供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";
    }
 

 

分享到:
评论

相关推荐

    object转化为时间类型

    - `public string GetTime(object all)`: 定义了一个名为`GetTime`的公共方法,它接受一个`object`类型的参数`all`,并返回一个`string`类型的值。 2. **Try-Catch块**: - 使用了`try-catch`结构来捕获可能发生...

    Java反射方法调用

    在这个主题中,我们将深入探讨如何使用Java反射来调用不同类型的参数方法,包括无参方法、Object类型参数的方法、基本类型参数的方法以及数组参数的方法,以及如何调用私有方法。 首先,要调用无参方法,我们可以...

    Spring MVC不能直接接收list类型参数的问题

    ### Spring MVC 无法直接接收 List 类型参数的问题详解 #### 问题背景 在 Web 开发过程中,前后端数据交互是必不可少的一部分。对于基于 Java 的 Spring MVC 框架而言,处理这种交互通常需要理解如何正确地接收前端...

    实现在GET请求下调用WCF服务时传递对象(object)参数

    实现WCF支持HTTP请求调用容易,但要实现类似MVC的ACTION及WEB API那样的灵活,那就得花费点功夫,为...因为如果WCF的参数为普通类型(即:值类型),那么调用很容易,也支持HTTP的多种请求方法,比如常见的:GET,POST

    JavaScript基础篇(3)之Object、Function等引用类型

    1. Object类型是JavaScript中最为基础和常用的引用类型。它可以用来模拟现实世界中的对象模型,存储键值对集合。 - 创建Object对象有两种方法: - 构造函数方式:var obj = new Object(); obj.name = "张三"; obj...

    js函数形参形参接收object变量.docx

    JavaScript函数参数接收Object变量是一个常见的编程操作,尤其是在处理复杂数据结构时。JavaScript是一种动态类型的语言,这意味着你可以在函数参数中传递任何类型的值,包括对象。以下是对这一主题的详细讲解: 1....

    pandas object格式转float64格式的方法

    在Pandas中,如果需要将object类型的列转换为数值类型,可以使用`convert_objects`方法,并设置`convert_numeric=True`参数。例如,如果有一个名为`dt_df`的DataFrame,其中包含object类型的列需要转换,可以这样做...

    object标签遮罩问题

    3. **其他属性** - 除了上述两个属性之外,`<object>` 标签还支持一系列其他的属性,如 `type` (用于指定对象的MIME类型)、`width` 和 `height` (定义对象的尺寸) 以及 `param` 子元素 (用于定义具体的参数)。...

    Object pascal中文参考手册

    两者都支持参数传递,可以有默认参数和变长参数列表。 5. **单元系统**:Object Pascal的源代码被组织成单元(Units),便于模块化开发和代码重用。 **面向对象特性** 1. **构造函数与析构函数**:用于对象的初始...

    C#泛型参数多线程与复杂参数多线程2

    最近用多线程用的比较多自己...毕竟从泛型类型传入参数向上转型的objcet类型的参数调用带参的多线程很容易,而将object类型还原成泛型却很难。 复杂参数的多线程,如果方法带有参数ref或out就不能使用带参数的多线程。

    Java参数类型的多态研究.pdf

    为了解决这些问题,Java引入了泛型,允许在定义类、接口和方法时使用类型参数,如List,这里的T称为类型参数,代表一个未知的类型。这样,我们可以在编译时就确保类型的安全性,避免了运行时的类型转换。 泛型的一...

    最完整的Object Pascal语言介绍

    1. 变量与常量:Object Pascal支持声明各种类型的变量和常量,包括整型(Integer)、浮点型(Real)、字符型(Char)等,并且可以指定变量的作用域,如在函数内部声明的局部变量或在类中声明的成员变量。 2. 函数与...

    浅析C# 中object sender与EventArgs e

    这里的两个参数非常关键:`object sender`代表触发事件的对象,而`EventArgs e`(或其派生类)包含了事件的具体数据。 #### 二、深入理解`object sender`与`EventArgs e` **1. `object sender`** `sender`参数是...

    c# 所有类型都从Object类型派生

    2. **初始化**: 分配内存后,会调用类型最匹配的构造函数,将传入`new`的参数传递给它。构造函数按照定义的顺序初始化实例字段,并可以调用基类的构造函数。 3. **构造器链**: 每个类型构造器在执行时,都会调用其...

    Object C语法快速入门

    【Object C语法快速入门】 Objective-C(简称ObjC)是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台。以下是一些Object C的基础语法知识点: 1. **方法调用**: - 在ObjC中,方法调用采用消息...

    配置Object+Store对象存储.doc

    2. **多设备组合**: 在更大规模的部署中,OSD可以由不同类型的设备组合支持,例如使用HDD作为主要数据存储,SSD用于加速元数据访问。这样可以优化成本和性能。 3. **集群规模规划**: OSD的数量取决于存储需求、每个...

    Java的包裹wrap

    当我们遇到arraylist等只能传入object类型参数的类的时候,就需要用到包装类对基本数据类型进行一下包装 就这么说吧,java是一门完全面向对象的语言,所以在java中有些容器要求用一个对象,这时你总不能还用原来c++...

    c#下的各种参数的详细说明与用法

    本文将详细讨论四种主要的参数类型:值类型参数、引用类型参数、输出参数和数组型参数。 1. 值类型参数: 值类型参数是最常见的参数类型,包括基本数据类型(如int、double、bool等)和结构体。当你传递一个值类型...

    objecthook_objecthook_

    在Python的`json`模块中,`object_hook`是一个可选参数,用于在反序列化JSON对象为Python字典时执行的函数。这个函数接收一个包含键值对的字典(这些键值对是根据JSON格式解析出来的),然后返回一个自定义的对象...

Global site tag (gtag.js) - Google Analytics