为什么Netbeans抱怨模糊,而Intellij却没有
我有一个kotlin数学库与以下Vec2i
类和主要构造函数 :
data class Vec2i(override var x: Int, override var y: Int) : Vec2t<Int>()
然后, Vec2i
也在几个次要的构造函数中设计了一个截取所有其他数字类型的函数:
constructor(x: Number, y: Number) : this(xi, yi)
在Idea下编译并运行。 我用一个单独的java项目测试了工件。
如果我切换IDE,相同的工件不会在java项目中运行,Netbeans会抱怨两者之间的不明确性。
为什么?
编辑:从一些进一步的分析,原来Netbeans抱怨,因为其中一个坐标是int
,另一个Integer
。 想法也一样,它说:
无法解析构造函数
那么,为什么用(int, int)
或(Integer, Integer)
调用一个构造函数是好的,但是(int, Integer)
没有解析到二级构造函数中,并引起歧义?
在oracles文档中,我们看到Integer
是一个保存int
的对象。
int
是一个原始类型,而Integer
是一个对象。
你已经允许构造函数传递一对类型,但是当你传递构造函数的时候不知道该怎么做。
有关更多信息, 这个问题有一个很好的细分。
- 在运行应用程序时,Intellij不包括对classpath的gradle依赖
- 在IntelliJ中Kotlin未解决的参考
- 在intellij 16中创建Android应用时,Gradle同步失败
- Intellij IDEA 15.04在OSX El Capitan上更新时出现启动错误
- 替换java属性中的占位符中的属性值 – IntelliJ
- 有没有办法使用Gradle将Kotlin类编译为JavaScript?
- 当试图返回内联lambda时,Kotlin“预计没有参数”
- 为什么IntelliJ Idea不能识别我的Spek测试?
- IntelliJ IDEA使用Gradle构建文件中指定的依赖关系的JavaScript“版本”?