请求 java 大神支援

搬瓦工机场JMS

比如一个多参数类型的函数

public void a(String param){}
public void a(Int param){}
public void a(String[] param){}
….

然后调用的时候,函数传入参数的变量(param)类型未知,怎么可以去匹配执行 a 函数?

台湾网友:只要定义好三个方法。
public void a(String param){}   //方法一
public void a(Int param){}   //方法二
public void a(String[] param){}   //方法三

调用的时候,他会自动去找的
a("字符串") ;  //自己会去找方法一运行
a(2) ;   //自己会去找方法二运行
a(["s","ss","sss"]) ;   //自己会去找方法三运行

辽宁网友:

直接传进去就行了呀,

或用instanceof 判断一下参数类型。
宁夏网友:方法的重载嘛,自动匹配去调用。
浙江网友:a(Object param)
if (param instanceof Integer)
数字
if(param instanceof String)
字符串
if(param instanceof String[])
数组
福建网友:
直接传进去肯定是不行的。。
Object value = 1;
Object value = true;
Object value="2";

a(value) 这样明显通不过啊
福建网友:有什么方法自动匹配,难道是用 instanceOf 去一个个判断类型写一遍?
安徽网友:不然你以为捏,看看jsonobject.tobean();中的jsonconfig实现类,人家也是一个个转的,别想偷懒了,至少要一个强转
天津网友:感谢,有没有别的办法,这样不是要写很多行。。像 js 一样直接传
江西网友:9楼不是回答了,方法的重载。
安徽网友:9楼不是回答了,方法的重载。
福建网友:问这种问题的,多半是脚本型语言转过来的。

JAVA是强类型OO语言,入参严格对应方法的定义,只能传入对应的类型或其子类。

还有一种可能,叫泛型,就是<T>类型的,这个这里就没必要讨论了。
浙江网友:这显然是半道出家。。压根没学过JAVA的赶脚
台湾网友:感情从头看到尾我才看明白lz在问啥

以上信息转载自Hostloc。

未经允许不得转载:美国VPS_搬瓦工CN2 GIA VPS » 请求 java 大神支援

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏