問題タブ [javap]
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.
scala - コンパイルされた Scala ファイルの型を理解する
与えられた:
経由でコンパイルした後、出力ファイルsbt compileをjavapしました。class
なぜa型があるのintですか?
Int with Fooinのタイプを指定していましたobject X。
java - Java で共変の戻り値の型を使用する場合の javap の Object.clone()
Java の共変の戻り値の型について読んでいます。次のコードを書きました。
親クラス:
子クラス:
使い方:
メソッドをオーバーライドするときにサブタイプを返しても問題ない場合 (ご覧のとおり、clone()inSuperおよびで行っていることです)、 およびを実行すると、それぞれinおよびがSub表示されるのはなぜですか?Object.cloneSuperSubjavap -p Super.classjavap -p Sub.class
の結果javap -p Super.class:
の結果javap -p Sub.class:
java - javap が逆コンパイルされたクラスのアノテーション情報を表示しない
以下のような単純なJavaクラスを持つjarがあります
クラスを javap で逆コンパイルした後、注釈情報が表示されません。
@VisibleForTestingタイプのアノテーションであるにもかかわらず、逆コンパイルされたクラスでアノテーション情報が欠落している理由を誰かに教えてもらえますかRetentionPolicy.CLASS?
Guava バージョン -23.5-jre
私はすでにこの質問を見ましたが、受け入れられた回答はここでは有効ではないようです。Javaドキュメントによると
RetentionPolicy.class - 注釈はコンパイラによってクラス ファイルに記録されますが、実行時に VM によって保持される必要はありません。
したがって、javap はアノテーション情報も表示できるはずRetentionPolicy.CLASSです。
編集
の出力javap -v
編集2
javapRUNTIME 保持ポリシーを使用している場合、まだ注釈が表示されません(例: Subscribe )
の出力javap
の出力javap -c
の出力javap -v