Object类型的参数
来源:互联网 发布:一个人做淘宝 心酸 编辑:程序博客网 时间:2024/05/16 04:46
通常提供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"; }
0 0
- Object类型的参数
- java Object类型的参数
- java 参数类型Object...
- java 参数类型Object...
- javascript的Object类型
- JavaScript的Object 类型
- Object..values可变参数列表,可理解为object[]数组类型
- 类型安全:方法add(Object)属于原始类型List。应该将对通用类型List<E>的引用参数化
- Interop.Domino.dll函数参数类型为Object的转换对照表
- C#控制台基础 被线程执行的函数如果有参数的话,那么参数的类型一定是object
- javascript-Object类型的方法
- Object-c------@property的参数
- 类型参数的类型推断
- 类型参数的类型推断
- MyBatis参数类型Object,且属性中含有List
- 函数参数的类型
- printf的参数类型
- list的参数类型
- 雷人的js时间函数
- 编写基于机器学习的程序,有哪些编写和调试的经验和窍门?
- mark最近被鄙视了n次linux水平
- Using "prototype" to append a new method to a Class
- 生疏了n久的javac,java命令行
- Object类型的参数
- 苹果
- android中动给组建添加动画载入效果
- 在a标签的href与onclick中使用javascript的区别
- 一个简单的 Thread 缓冲池的实现
- XWork Features-
- Mysql 慢查询和日志分析
- 扩展log4j系列[一]为DailyRollingFileAppender加上maxBackupIndex属性
- sum(@)和按年,月,日查询,按本月,本日查询的相关的sql语句