[英]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.