問題タブ [static-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
146378 参照

java - 「インポート」の後の「静的」修飾子はどういう意味ですか?

このように使用すると:

import static com.showboy.Myclassとはどう違いimport com.showboy.Myclassますか?

0 投票する
16 に答える
100699 参照

java - メソッドの静的インポートの良いユースケースは何ですか?

メソッドの静的インポートは良い考えではなかったというレビューコメントを受け取りました。静的インポートは、ほとんど静的メソッドを持つDAクラスからのメソッドでした。したがって、ビジネスロジックの途中で、現在のクラスに属しているように見えるdaアクティビティがありました。

レビューアは私がコードを変更することに熱心ではなく、私は変更しませんでしたが、私は彼にある程度同意します。静的インポートを行わなかった理由の1つは、メソッドが定義された場所が混乱していたことです。現在のクラスにもスーパークラスにもなかったため、定義を特定するのに時間がかかりすぎました(Webベースのレビューシステムにはクリック可能機能がありません)。 IDEのようなリンク:-)これはそれほど重要ではないと思います。静的インポートはまだ非常に新しく、すぐにそれらを見つけることに慣れます。

しかし、私が同意するもう1つの理由は、修飾されていないメソッド呼び出しが現在のオブジェクトに属しているようであり、コンテキストをジャンプしてはならないということです。しかし、それが本当に属していれば、そのスーパークラスを拡張することは理にかなっています。

では、静的インポートメソッドが意味をなすのはいつですか?いつやったの?修飾されていない呼び出しの外観は気に入りましたか?

編集:一般的な意見は、誰も現在のクラスのメソッドと混同しない場合は、静的インポートメソッドであるようです。たとえば、java.lang.Mathおよびjava.awt.Colorのメソッド。しかし、absとgetAlphaがあいまいでない場合、readEmployeeがなぜであるかわかりません。多くのプログラミングの選択肢と同様に、これも個人的な好みだと思います。

0 投票する
4 に答える
1748 参照

java - 静的インポートのオーバーロード

assertEqualsテストクラスでは、に依存しない特別なロジックを使用して、独自のオーバーロードを提供したいと思いObject.equalsます。残念ながら、assertEqualsローカルでメソッドを宣言するとすぐにJavaが静的インポートを検出しなくなるため、これは機能しませんorg.junit.Assert.*

これを回避する方法はありますか?つまり、静的にインポートされたメソッドに追加のオーバーロードを提供する方法はありますか?(かなり明白な解決策は、メソッドに別の名前を付けることですが、この解決策は同じ美的魅力を持っていません。)

私のテストクラスファイルは次のようになります。

Error *は「assertEquals(Bar, Bar)型のメソッドBarTestは引数には適用できません(int, int)。」</p>

0 投票する
6 に答える
2083 参照

java - プライベートサブクラスの静的インポートを実行できますか?

クラスの外に公開されないように、プライベートな列挙型があります。とにかく、そのタイプの静的インポートを実行できるので、毎回列挙型を入力する必要はありませんか?それとも、これを書くためのより良い方法はありますか?例:

0 投票する
5 に答える
3094 参照

java - 静的にインポートされている場合、どのようにジェネリック メソッドを型で呼び出すことができますか?

特別なタイプでジェネリック メソッドを呼び出すことができることがわかりました。

一般的なメソッドがあるとします。

次のように呼び出すことができます。

しかし、静的にインポートされた場合、どのように呼び出すことができますか? 例えば:

これは動作しません。

0 投票する
2 に答える
425 参照

java - Javaでは、コンストラクタまたはローカル変数を(静的に)インポートできますか?

それとも、メソッド/フィールド/列挙定数に対してこれを行うことができますか?

0 投票する
4 に答える
3306 参照

java - クラスにインポートされたものと同じ名前のメソッドがある場合、importstaticは機能しません

メソッドJunit4を静的にインポートするテストケースがあります。org.junit.Assert.assertEquals

このクラスでは、equalsを実装していない(また、実装に苦労している)いくつかの複雑な内部クラスをアサートするためのユーティリティメソッドを作成しました。

インポートしているメソッドを「オーバーロード」しているようにコードが動作することを期待していましたが、静的にインポートされたメソッドassertEqualsを非静的なプライベートメソッドが隠しているようです。また、メソッドをpublicand static(すべての順列)に変えようとしましたが、成功しませんでした。名前を変更する必要がありました。

それがこのように動作する理由は何ですか?ドキュメントでこの動作への参照を見つけることができませんでした。

0 投票する
5 に答える
3783 参照

java - Javaでの静的インポートの正しい使用

重複の可能性:
メソッドの静的インポートの良いユースケースは何ですか?

次のようなJavaでの静的インポートはめったに見られません。

import static java.lang.Math.*;

その後PI、を呼び出さなくてもアクセスできますMath.PI

あなたはこれをそれほど頻繁に見ないので、それはこれをするのは悪いデザインであることを意味しますか?

0 投票する
7 に答える
382 参照

java - Java でのデバッグ用の単純な印刷メソッドの作成

車輪を再発明する前に、すべてのクラスでsay("We are here.");定義せずに、 などのコードにデバッグ トレースを挿入できるようにしたいと考えています。static void say()実行する必要がありSystem.out.println(s)、グローバルにオンまたはオフに切り替える必要があります(doSay(false))。また、呼び出し元のクラスを識別できるようにしたいと思います(here で説明されているように)。例えば:

MyClass: 私たちはここにいます。

Javaにはすでにそのようなツールがありますか?

0 投票する
2 に答える
138 参照

java - このグリッド変数はどこから来たのですか?

DynamicReportsのColumnGridReportの例を見ています。

例で使用されているDSLの代わりに、従来のコード構文を使用したいと思います。

などを使用report.addColumn(...)しますが、「columnGrid」の部分でそれを行う方法がわかりません。

変数がありますgrid...それはどこで初期化されますか?

report.columnGrid(基本的には、内側の部分を初期化する方法を実行したいと思います)

これを古典的な構文に変換するにはどうすればよいですか?