java - 从地址获取对象
问题描述
这只是一般知识,我很确定这可能是不可能的,但我很想知道。
假设我有一个 Student 类对象s1
,并将它作为myFunc(s1.toString())
. 我没有覆盖toString()
函数。当参数到达函数时,我可以仅通过地址引用回原始对象吗?
代码:
public static void main(){
Student s1;
myFunc(s1.toString());
}
public static myFunc(String address){
Student s2;
s2 = //get s1 object from address string
}
解决方案
在保留 Java 语言的情况下,您要求做的事情在设计上是不可能的。与像 C 这样简单地将内存区域的任意控制权交给程序的语言相比,JVM 使用能力模型,其中安全性和某种正确性度量取决于不能伪造引用的事实(制造自用户定义的数据,例如字符串,而不是由 VM 本身生成)——获取对象引用的唯一官方方法是通过new
或复制现有引用创建该对象。
推荐阅读
- flask - 烧瓶表单/ wtf 组件使字段不需要
- sql - 将行透视到 (Amazon Redshift) 中 varchar 值的列
- vue.js - 升级webpack和babel到最新版本后vue3中路径无法解析
- python - 绘图时,每次在不同列中的同一点对齐所有数据初始值
- javascript - 用单个 DB 调用替换 mongoDB 文档的 *array* 中的子字符串
- html - 如何使用 CSS 在背景图像中应用“过滤器:亮度()”而不将其亮度继承到整个子元素?
- javascript - 奇怪的 Axios 发布行为。在请求 URL 的末尾引入奇怪的字符串
- sql - Entity Framework Core 自定义聚合函数
- jsp - 我正在使用的 tomcat 服务器 10.0 服务器不断向我显示请求的资源不可用的错误 404
- c - 什么是结构中的灵活数组成员?