Java 同名 static 函数调用意外行为及解决方案
如果两个同名 'static' 函数在不同的类中被调用,可能会出现意外的行为。这是因为虚拟机指令抽取会将它们合并为同一个方法,所以无论是调用哪个类中的该函数,实际上都会执行同一个方法。
将方法修改为非 'static' 可以解决这一问题。当一个方法被定义为非静态时,它是与对象实例相关联的,而不是与类相关联的。因此,即使两个不同类中有相同的非静态方法,它们仍然是独立的方法,不会被虚拟机指令抽取合并为同一个方法。
当调用非静态方法时,必须通过对象实例来调用,因此在不同的类中使用相同名称的非静态方法时,实际上会分别调用各自类中的方法,不会出现意外的行为。
原文地址: https://www.cveoy.top/t/topic/quAL 著作权归作者所有。请勿转载和采集!