English 中文(简体)
BiteBuddy 在同一类中与参数转换同类的 BiteBuddy 援引建筑师
原标题:ByteBuddy invoke constructor in same class with argument transformation

我有类似的爪哇类:

public class A {

    public A(int a) {
        // ...
    }

    public A(String a) {
        // ...
    }

}

鉴于我无法编辑该类或创建该类的子类,我想用字节buddy来达到以下目的:

public A(int a) {
    this(Integer.toString(a));
}

我与顾问和方式授权进行了尝试,但没有成功。 用字节兄弟实现这一点的正确途径是什么?

最佳回答

感谢拉斐尔·温特哈尔特建议的做法,我实现了我想要的以下目标:

new ByteBuddy().redefine(A.class)
                    .constructor(isConstructor().and(takesArgument(0, int.class)))
                    .intercept(invoke(isConstructor().and(takesArguments(String.class)))
                            .withMethodCall(invoke(Integer.class.getMethod("toString", int.class)).withArgument(0))
                    );
问题回答

构造器的特殊性在于它们不允许从外部引用超级构建器。 如果您重新定义了方法, 您可以使用方法Call 来定义这样的构建器 。

d 需要定义一个方法呼叫超级构建器,该构建器接受方法呼叫至 String 方法,仅以该参数为依据。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签