Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用注释@MyFormat(";%td.%<;tm.%<;tY";设置getBirthday()的格式_Java_Bytecode_Byte Buddy - Fatal编程技术网

Java 如何使用注释@MyFormat(";%td.%<;tm.%<;tY";设置getBirthday()的格式

Java 如何使用注释@MyFormat(";%td.%<;tm.%<;tY";设置getBirthday()的格式,java,bytecode,byte-buddy,Java,Bytecode,Byte Buddy,我如何生成一个类,该类接受Person实例并以字符串形式返回生日,而不是以@MyFormat注释的值格式化的日期,而不用手工编写该子类 目的是使用生成的实例生成HTML页面 班级人员{ @MyFormat(“%td.%%我不完全确定我是否理解您试图实现的目标。以下代码正在创建一个您不使用的Person子类: new ByteBuddy() .subclass(person.getClass()) .method(isAnnotatedWith(MyFormat.class)) .in

我如何生成一个类,该类接受Person实例并以字符串形式返回生日,而不是以@MyFormat注释的值格式化的日期,而不用手工编写该子类

目的是使用生成的实例生成HTML页面

班级人员{

@MyFormat(“%td.%%我不完全确定我是否理解您试图实现的目标。以下代码正在创建一个您不使用的
Person
子类:

new ByteBuddy()
  .subclass(person.getClass())
  .method(isAnnotatedWith(MyFormat.class))
  .intercept(MethodDelegation.to(MyFormatInterceptor.class))
  .make()
  .load(person.getClass().getClassLoader(),                  
        ClassLoadingStrategy.Default.WRAPPER)
  .getLoaded();
当您在运行时使用此生成的子类时,调用
getBirthday
方法会导致
ClassCastException
,因为
字符串
值不能转换为
日期
。即使通过反射调用方法,Byte Buddy也不会更改返回类型