問題タブ [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 Foo
inのタイプを指定していましたobject X
。
java - Java で共変の戻り値の型を使用する場合の javap の Object.clone()
Java の共変の戻り値の型について読んでいます。次のコードを書きました。
親クラス:
子クラス:
使い方:
メソッドをオーバーライドするときにサブタイプを返しても問題ない場合 (ご覧のとおり、clone()
inSuper
およびで行っていることです)、 およびを実行すると、それぞれinおよびがSub
表示されるのはなぜですか?Object.clone
Super
Sub
javap -p Super.class
javap -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
javap
RUNTIME 保持ポリシーを使用している場合、まだ注釈が表示されません(例: Subscribe )
の出力javap
の出力javap -c
の出力javap -v