为了账号安全,请及时绑定邮箱和手机立即绑定

百思不得其解,有人知道是怎么回事么?

百思不得其解,有人知道是怎么回事么?

慕工程0101907 2023-04-09 17:13:25
本人想修改java.lang.String类,然后导出成jar,代替原来虚拟机的String类使用,但是在添加一个布尔数组后,导出成jar并使用时出现下面的错误: Error occurred during initialization of VM java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalArgumentException: name can't be empty at java.security.BasicPermission.init(Unknown Source) at java.security.BasicPermission.<init>(Unknown Source) at java.lang.RuntimePermission.<init>(Unknown Source) at java.lang.Thread.<clinit>(Unknown Source) 添加的数组形式如下: private boolean barray[]; 如果改成private boolean barray; 则可正确运行。 如果改成跟String源码中的value一样:private final char value[]; 也不行。 
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

很简单:HotSpot VM对java.lang.String的字段排布是有硬性要求的;如果你要对String的字段个数、类型、名字等做修改,要在HotSpot VM上正常运行就必须连VM也相应的修改。

查看完整回答
反对 回复 2023-04-12
?
烙印99

TA贡献1829条经验 获得超13个赞

String类是final类型,不可继承,不知道是什么样复杂的需求让你需要修改String类?如果想修改String类,还是自己去写一个类似实现String功能的类,再在项目中使用即可,不过这样的工作量有点大哦。

查看完整回答
反对 回复 2023-04-12
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信