嗨 Tapestry 塑料是一个强大的框架,它通过动态修改字节码来提供类元功能,这要感谢漂亮的 dsl。
http://tawus.wordpress.com/2011/04/18/meeting-plastic/
然而,在所有样本和测试挂毯中,人们都使用 groovy ......我想将它与 java 一起使用,但由于生成的对象上的 ClassCastException 而我从未设法这样做?我知道这是一个类加载器问题,但诀窍是什么?
我们可以使用带有普通 Java 和外部 Tapestry Web 框架的 Tapestry Plastic 吗?
...
PlasticManager pm = PlasticManager.withContextClassLoader().packages ( Arrays.asList( "plastic" )).
delegate(new StandardDelegate(new ToStringTransformer())).create();
Foo foo = (Foo) pm.getClassInstantiator("plastic.controlled.Foo").newInstance();
...
这将返回一个 ClassCastException。