問題タブ [static-block]
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.
java - Java での静的ブロックのモック
Java に対する私のモットーは、「Java には静的ブロックがあるからといって、それを使用する必要があるという意味ではありません」です。冗談はさておき、Java にはテストを悪夢にするトリックがたくさんあります。私が最も嫌いなのは、匿名クラスと静的ブロックの 2 つです。スタティック ブロックを利用するレガシー コードが多数ありますが、これらは単体テストの作成を推進する際の厄介なポイントの 1 つです。私たちの目標は、最小限のコード変更で、この静的初期化に依存するクラスの単体テストを記述できるようにすることです。
これまでのところ、私の同僚への提案は、静的ブロックの本体をプライベートな静的メソッドに移動し、それを呼び出すことstaticInit
です。このメソッドは、静的ブロック内から呼び出すことができます。単体テストでは、このクラスに依存する別のクラスをJMockitstaticInit
で簡単にモックして、何もしないようにすることができます。これを例で見てみましょう。
に変更されます
JUnitで次のことができるようにします。
ただし、このソリューションには独自の問題もあります。実際には静的ブロックを に対して実行したいので、同じ JVM でDependentClassTest
とを実行することはできません。ClassWithStaticInitTest
ClassWithStaticInitTest
このタスクを達成するためのあなたの方法は何ですか? または、よりクリーンに動作すると思われる JMockit 以外のより優れたソリューションはありますか?
java - Javaの静的ブロックに相当するScalaとは何ですか?
Javaの静的ブロックに相当するScalaとは何ですか?
java - 静的初期化ブロック
私が理解している限り、「静的初期化ブロック」は、1行で実行できない場合に静的フィールドの値を設定するために使用されます。
しかし、そのために特別なブロックが必要な理由がわかりません。たとえば、フィールドを静的 (値の割り当てなし) として宣言します。次に、上記で宣言された静的フィールドに値を生成して割り当てるコードを数行記述します。
のような特別なブロックでこの行が必要なのはなぜstatic {...}
ですか?
c# - Java静的ブロックはC#静的コンストラクターと同等ですか?
C# 静的コンストラクターと Java 静的ブロックの実際の違いは何ですか?
どちらもパラメーターなしでなければなりません。どちらも、関連するクラスが最初に使用されるときに一度だけ呼び出されます。
何かが足りないのですか、それとも名前が違うだけで同じものですか?
java - シングルトン プロパティに関する質問
ここにある列挙型の Java チュートリアルを読んでいて、質問があります: http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html#Card
私が混乱している部分は次のとおりです。
「上記の Card クラスには、デッキを返す静的ファクトリが含まれていますが、ランクとスーツから個々のカードを取得する方法はありません。コンストラクターを公開するだけでは、シングルトン プロパティ (各カードの単一のインスタンスのみ) が破棄されます。ネストされた EnumMap を使用して、シングルトン プロパティを保持する静的ファクトリを作成する方法を次に示します。
私が理解しているように、元のプライベート「カード」コンストラクターをパブリックに変更すると、特定のスーツ+ランクを持つ「カード」オブジェクトのコピーを無制限にインスタンス化できます。提案された解決策は、ランクをキーとする 13 個の Card オブジェクトを含む 4 つのマップ (スートごとに 1 つ) を格納する EnumMap を作成することでした。
したがって、デッキから特定の Card オブジェクトを取得したい場合は、「valueOf」メソッドを呼び出すだけです。私の質問は、 valueOf メソッドを好きなだけ呼び出すことを妨げているのは何ですか? それは、元のプライベート コンストラクターをパブリックにするのと同じ問題につながるのではないでしょうか。
ありがとう。
c++ - cまたはc ++の静的ブロックとは何ですか?
cまたはc ++の静的ブロックとは何か、例を挙げて知りたいですか? 何が静的かは知っていますが、静的ブロックと静的ブロックの違いは何ですか?
java - ClassLoadingの時間を検出する方法
CLass [A としましょう] を含む TrirdParty API があります。次のような奇妙な静的ブロックがあります。
System.exit()
オーバーライドされたへの呼び出しを防止したいSecurityManager
。SecurityManager
ただし、このブロックが実行される直前をオーバーライドし、その直後にstatic
元のセキュリティ マネージャーを復元したいと考えています。
を置き換える/上書きする/復元する方法を知っていますSecurityManager
。
static
私の問題は、ブロックがいつ呼び出されるか[基本的にクラスがロードされるとき]をどのように決定するSecurityManager
かSystem.exit()
ですSecurityManager
.
静的ブロックが実行されている間のみ、セキュリティ マネージャをオーバーライドすることが重要であることに注意してください。
編集:
ライセンス上の理由から、ソースを変更することはできません。
java - 静的ブロックとメインスレッド
Javaを試してみると、とても面白いことがわかりました。以下のコードを見つけてください:
上記のプログラムは例外なく実行されます(静的ブロック自体で終了しているので、問題ありません)。しかし、私は出力として次のものを取得しました:
主要
メインスレッドを開始していないので、どのようにして作成されましたか。私の理解によると、静的ブロックはロード時に実行されます。では、メインスレッドはどのように浮かび上がりますか?
誰かがjvmでコンパイル、ロード、実行がどのように行われるかを簡単に紹介できますか?また、rt.jarを使用しますか?
よろしくお願いします、ブリナル
html - Magento の CMS ページで静的ブロックを使用するときに CSS がありません
ホームページで完全に機能するテーマの一部として静的ブロックがありますが、静的ブロックを他のページに追加すると、表示が異なります。基本的に、CSS はブロックに従っておらず、本来あるべき姿とはまったく異なります。ブロックにはテーマによって提供されるウィジェットが含まれているので、ウィジェットの作成時に CSS を添付する必要があるというのは正しいですか?
コアファイルをあまりいじることなく、CSS がブロックに従うように強制する方法はありますか? または、誰かが私が見落としているものを見ることができますか?
java - 「クラスがロードされるとき」は実際にはどういう意味ですか?
Javaの静的ブロックは、そのクラスがロードされたときに1回だけ実行されると言われています。しかし、それは実際にはどういう意味ですか?クラスはどの時点でJVM(Java仮想マシン)によってロードされますか?
そのクラスのメインメソッドが呼び出されたときですか?また、mainメソッドの実行開始時に、同じクラスのすべてのスーパークラスも読み込まれるのでしょうか。
AがBを拡張し、BがCを拡張するとします。すべてに静的ブロックがあります。Aにメインメソッドがある場合、静的ブロックの実行シーケンスはどうなりますか?