2017-02-09 4 views
3

は、私は以下のVec2iclass and primary constructorとkotlin数学のlibを持っていないながら、NetBeansは曖昧文句理由:次にのIntelliJではなくない

data class Vec2i(override var x: Int, override var y: Int) : Vec2t<Int>() 

Vec2iは、いくつかの二次のコンストラクタの中で、また、すべての傍受することになっているものを持っていますその他number types

constructor(x: Number, y: Number) : this(x.i, y.i) 

Ideaのすべてがコンパイルされ実行されます。別のJavaプロジェクトでアーティファクトをテストしました。私はIDEを切り替えると、同じ成果物はJavaプロジェクトでは実行されません

、Netbeansのは、両者の間の曖昧さについて不平を言います。

なぜですか?

編集:Netbeansは座標がint、もう1つがIntegerだったため、さらに分析したところ、Netbeansは文句を言った。 アイデアで同じことをしようと、それは言う:

だからコンストラクタ

を解決することはできません、なぜ(int, int)または(Integer, Integer)でcostructorを呼び出すことは結構ですが、(int, Integer)二コンストラクタに解決し、挑発しませんあいまいさ?

+0

http://stackoverflow.com/questions/564/what-is-the-difference-between-an-int-and-an-integer-in-java-and-c – hellyale

+0

欲しい答えには、私はそれを受け入れるよ – elect

+0

答えが十分であるかどうかわからない、私はそれが助けと思った。 – hellyale

答えて

1

oracles documentationでは、Integerintを保持するオブジェクトです。 Integerが目的であるのに対し、

intは、プリミティブ型です。

あなたはどちらのタイプのペアを渡すためにできるようにしているコンストラクタが、しかし、あなたは、両方合格したときに、コンストラクタは何をすべきか分かっていません。詳しくthis questionについては

は良い内訳を持っています。

関連する問題