bytecode-manipulation

    9

    2答えて

    ここではドラゴンです。あなたは警告されています。 もっと良いテストスイートを書くのを助ける新しいライブラリを作ることを考えています。 この機能の1つは、テストランナーではなく、system under testにはテストダブル(モックオブジェクト、スタブ、擬似またはダミー)が使用されていることを確認する機能です)。テスターがライブオブジェクトを必要とし、テスト分離を減らす場合、テスターはそれを明示

    11

    4答えて

    展開されたJavaプログラムの文字列定数、つまりコンパイルされた.classファイル内の値を変更する必要があります。再起動することはできますが、簡単に再コンパイルすることはできません(ただし、この質問で回答が得られない場合は不便です)。これは可能ですか? 更新:私はちょうど16進エディタでファイルを見て、簡単にその文字列を変更できるように見えます。それはうまくいく、つまりファイルの何らかのシグネチ

    5

    2答えて

    私はクラスを作成するためにJavassistを使用します。そして、テストスイート、第二の試験は、同じクラスを作成しようとすると、クラスが凍結されているので、それはpool.makeClass(...)で失敗した(すなわち、すでにtoClass()を使用して作成。 に最初のテストがすべき、理想的には?これを克服する方法は何何とかクラスを削除する - おそらくクラスローダーからアンロード - 。しかし

    1

    1答えて

    ASMを使用して、メソッド内のコードを別のメソッドに置き換えます。このメソッドは "checkIfShouldDisconnect"と呼ばれ、BytecodeOutlineプラグインを使用して、変換したいソースコードのASMコードを取得しました。しかし、私はClassFormatErrorを取得します。これは私のバイトコードが正しくフォーマットされていないためだと思います。私は何を間違えたのですか

    8

    1答えて

    Javaプログラムのメソッドのパラメータの値を取得しようとしています。 私はASMを使用してバイトコードを計測し、これらの値を取得しています。 しかし、私はいくつかの問題に遭遇しています。 ここに、コードの計測に使用されるvisitCode()メソッドがあります。 収集されたパラメータを格納する空の配列を作成します。 各パラメータについて、その値を配列にロードします。 この配列をエージェントのOn

    5

    2答えて

    Javaでは、メソッドで使用されるフィールドを取得するにはどうすればよいですか? 基本的には、this one in .NETと同じ質問です。クラスのフィールドをリストするのではなく、クラスの特定のメソッドで使用されているフィールドをリストすることはできません。 例: public class A { int a; int b; public int bob(){ return a-b;

    17

    1答えて

    私はJavassistのような高水準のバイトコード操作ツールを探していますが、これはScalaの特質のいくつかを理解しています。下位レベルのバイトコード操作ツールは比較的無関係であるべきですが、私の使用例では、Javassistのレベルで何かがはるかに優れています。しかし、そのレベルのツールはソース言語とそのバイトコードマッピングについて知る必要があります。 Scalaにとってこれのようなものが存

    8

    2答えて

    私のプロジェクトには多くのバリューオブジェクトがあります。 私の値オブジェクトは、次のいずれかのように見えるので、私は、いくつかの決まり文句を排除するために、プロジェクトのロンボクを使用していないよ: @Value @Accessors(fluent = true) public class ValueObject { private final String firstProp;

    5

    1答えて

    私はASMを使用しての.classファイルに静的最終フィールドを追加したい、とソースファイルが public class Example { public Example(int code) { this.code = code; } public int getCode() { return code; } priv

    12

    1答えて

    私はASMを使用しているバイトコード解析プロジェクトに取り組んでいます。すべてがうまくいっている、私は解析し、クラスとメソッドの情報を正常に取得することができます。 しかし、ジェネリックのバイトコード表現の理解に悩まされています。ここ (ILjava/util/Collection<+TE;>;)Z 私は一つ一つを分解しようとしていると理解しています:ここで私は情報を印刷するClassVisi