当null
作为参数传递时,为什么调用具有类型为Object[]
的参数的方法,而不是调用具有类型为Object
的参数的方法?
class Demo {
void show(Object arr[]) {
System.out.println("khawar");
}
public void show(Object o) {
System.out.println("aleem");
}
public static void main(String[] args) {
Demo ss=new Demo();
ss.show(null);
}
}
当多个候选者匹配时,将选择最具体的签名。Object[]
是一个Object
,因此Object
更通用的地方更具体。
例如,如果您添加了show(Intger[])
,那么这将是最具体的候选者,并且将被选择在show(Object[])
之上。如果您同时添加了show(intger[])
和show(String[])
,那么您将收到一个编译时错误,指定show(Object)
是不明确的,因为这两个新添加的方法都是对您尝试进行的调用具有同等特异性的候选者。
如果要强制调用show(Object),则可以编写:show((Object)null)
您必须通过JLS找到确切的解释,但基本上原因是,选择了最具体的方法签名,“null”与子类的匹配比与超类的匹配更具体。
// Where Subclass extends Middleclass extends Superclass
public void method(Superclass c) {}
public void method(Middleclass m) {}
public void method(Subclass s) {}
在上述情况下,调用方法(null)
将调用方法(子类s)
。
首先,需要注意的是,空值可以转换为对象和对象,因此这两种方法都适用。那么,这只是一个解决过载的问题。JLS第15.12节对此进行了描述,第15.12.2.5节特别谈到了寻找“最具体的方法”,其中包括:
非正式的直觉是,如果第一个方法处理的任何调用都可以传递给另一个方法,而不会出现编译时类型错误,那么一个方法比另一个方法更具体。
要调用show(Object),只需将null转换为Object,即可停止show(Object[])方法的应用:
ss.show((Object) null);
我使用spring解析数据json,格式如下: 请求 答复: 这是我在课堂上的方法: 在调用API之后,解析数据,下一步将按行归属消息插入数据。然后循环获取列表中的数据 当我运行此方法时,我可以从json数据中获取结果,但只有3个字段无法获取值,并且为null: 如何获得msisdn、total\u调用、total\u循环持续时间的值?非常感谢
我是Spring MVC的新手,我已经导入了一个与服务器端验证相关的教程项目,我对它到底如何工作有些怀疑。 因此,我有一个名为login.jsp的登录页面,其中包含以下登录表单: 因此,如您所见,在username和password字段上声明了@notblank和@size验证注释。 这里的第一个疑问是:与两个常用库javax.validation和org.hibernate.validator到
问题内容: 我正在使用JPA,hibernate3。 当没有空值或空值时,此查询就像一个超级按钮。但是 traceEntityVO.getLotNumber(),traceEntityVO.getMfrLocId(),traceEntityVO.getExpDate()的 值可能为null或为空 。 在这种情况下,将针对变量而不是 null 条件来检查值’null’或’‘ 。当我不确定参数值是否为
我有一个使用Jersey编写的RESTful web服务,看起来如下所示: 问题:是否有方法接受空请求负载,并在服务器端处理它? 注意:我使用的是Jersey提供的POJO支持。
这是第一个类MyServlet.java,我使用另一个名为compute.java的代码调用它来计算,它调用函数,整个操作通过bcak端的R代码完成,这个文件的链接在compute类中给出。 一个名为ClassNotFoundException的错误正在中断程序。 MyServlet.java 我在这两行代码中发现了一个错误,特别是
该页面主要反馈和分析项目运行过程中性能相关参数的具体使用情况。这些参数均是我们经过大量的项目优化所总结下来的经验参数。研发团队通过该项分析可以快速定位项目运行时的主要性能瓶颈。我们认为,对于重要参数所反映出的性能瓶颈进行有针对性的优化可以为项目带来大幅度的性能提升。目前,UWA所提供的重要性能参数主要有: Instantiate实例化操作 以上图表主要展示项目运行过程中 “Instantiate实