org.junit.Assert.assertEquals
メソッドを静的にインポートするJunit4
テストケースがあります。私は等号を実装していないいくつかの複雑な内部クラスをアサートするためのユーティリティメソッドを作成しました。このクラスでは クラスにインポートされたメソッドと同じ名前のメソッドがある場合、import staticは機能しません。
import static org.junit.Assert.assertEquals;
は(とも苦労それを実装してい)。
private void assertEquals(MyObj o1, MyObj o2)
{
assertEquals(o1.getSomething(), o2.getSomething());
assertEquals(o1.getSomethingElse(), o2.getSomethingElse());
...
}
は、私は私が輸入していますassertEquals
方法(複数可)「のオーバーロード」していたかのようコードが動作するように期待されるが、は静的にインポートする方法を隠してそれは私の民間非静的メソッドのように見えます。私もpublic
とstatic
(すべての順列)に私のメソッドを回してみましたが、成功なし - 私はそれを名前を変更する必要がありました。
このように動作する理由は何ですか?私はドキュメントでこの動作への参照を見つけることができませんでした。
内部メソッドのシグネチャ(または名前)を変更するのを止めたいのは何ですか? – spot35
@DomSelvon、署名の変更は役に立ちません。メソッド名について - 何も私を止めていません - 質問は純粋に知識のためです(既に名前が変更されています) – RonK