java - 我删除了必要的构造函数,但它仍然可以编译并运行

标签 java

在通过删除我认为不必要的代码来整理我的项目时,我删除了以下形式的构造函数

public MyClass(int a,  int b) 

保留另一个构造函数

public MyClass(double c, double d)

有一个对 int, int 构造函数的调用,我没有注意到,但它编译并运行,但调用了 double, double 版本,非常正确地导致了我编写的异常处理程序被抛出。 MyClass 不扩展任何其他类。

Java 通过什么规则导致这种不可见的自动转换发生?

最佳答案

根据这条规则:http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#5.1.2

这是一个不断扩大的转变。

关于java - 我删除了必要的构造函数,但它仍然可以编译并运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5921457/

相关文章:

Java使自定义对象具有可比性?

java - 获取二维 map 图 block 的直角坐标

java - Jackson - 序列化包含空元素的列表

java - 即使文件位于同一个包中,也找不到这样的文件或目录

java - 如何在 FreeMarker (FTL) 中从自己的类创建实例

java - 如何修复多个 If-Else 条件下的 SonarLint 认知复杂性错误

java - 确保 Spring bean 是单例的

java - 列表 <Character> 上的 StringIndexOutOfBoundsException

java - 无需类即可从跨度获取文本

java - 如何省略创建静态Map来缓存数据?