繁体   English   中英

在Java10中使用什么而不是`defineClass`?

[英]What to use instead of `defineClass` in Java10?

我使用ClassLoader方法defineClass()来定义字节数组中的类。 我使用反射获取此方法:

ClassLoader.class.getDeclaredMethod(
    "defineClass", String.class, byte[].class, int.class, int.class);

Java10抱怨的反射使用defineClass

我应该用什么呢?

MethodHandles.Lookup.defineClass似乎是受祝福的替代品。 但请注意,您定义的类必须与查找的查找类位于同一个运行时包中。 您将无法在其他模块中存在的包中创建类,这是以前的方法没有的限制。 根据您的使用情况,这些问题可能会也可能不会出现。

对于后续阅读,Rafael Winterhalter在他与Byte Buddy合作的背景下发表了关于新限制的博客 如果您的技术足以理解围绕任意运行时类定义的问题,那么您可能会感兴趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM