java 中怎么获得对象引用的名称?

RT比如有一对象Objectinstance=newObject();怎么获得该对象引用名的字符串“instance”?注意不是获得“Object”而是“instance... RT
比如有一对象 Object instance = new Object();
怎么获得该对象引用名的字符串 “instance” ?
注意不是获得 “Object” 而是 “instance”。
展开
 我来答
咚日渐暖
2019-04-20
知道答主
回答量:6
采纳率:0%
帮助的人:2392
展开全部
很简单哟,但首先明确一点,java并没有提供方法可以直接返回引用名称的,我们只能自己实现,方法如下:
1、类中定义一个私有String类型的 instanceName 字段,并写get方法;
2、在构造方法中使用有参构造为其赋值;
3、new对象时传入引用名称;

3、使用的地方直接调用get方法即可返回改引用名称;
李西召
2015-06-10 · TA获得超过303个赞
知道答主
回答量:41
采纳率:0%
帮助的人:36.4万
展开全部
获得其所有引用变量的名字是不可能的,也没有实际意义,正如你现在无法确切说出有多少部手机“引用”(存储)了你的手机号码一样。注意,我们使用的是对象,而不是引用此对象的名字,事实上,在动态代理之中,我们从头到尾根本不需要知道代理类的名字,因为它是系统自动生成的。
追问
怎么没有实际意义。比如将人视作类,zhangsan为的类引用名,我有时需要获得张三这个名字。
就像动态代理中,我想知道代理是谁一样。
虽然可以将zhangsan作为类的一个属性来完成这样的需要,但这样多占用的空间。
Person zhangsan = new Person();

原谅我比较偏执。。。真的没法办到么?
追答
根据面向对象的良好封装原则,名字应该作为属性(Field)设置,必要时还要私有化(private修饰),如果你是为了节省内存而将类的引用名与类相关联的话,那么你真的是误入歧途了。
一般的,我们在编程中会使用单例模式(JavaEE规范推荐,一般情况下,不保存客户端状态的对象都应设为单例)和代理模式(著名的ORM框架Hibernate的延迟加载功能就是代理模式的应用)等等减少对内存的消耗;池的概念也应用的很广泛,例如线程池、常亮池、数据库连接池等,在对象被反复并发访问的环境下,也很实用。还有很多,这里就不再一一列举了。
最后,在实际开发中,尤其是企业级应用,我们说,方便后期的维护与拓展的重要程度,是远远超过对内存的节约的,所以你会发现所有的框架和设计模式都不会拒绝反射。
这仅仅是2019的一点小感悟,仅供参考,谢谢。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小里八拉
2021-09-08 · TA获得超过110个赞
知道答主
回答量:218
采纳率:0%
帮助的人:31.5万
展开全部

在使用python时,和你有类似的想法。我用for循环遍历了实例对象名称列表,for语句中,加入instanceName = item。在类中,直接调用instanceName即可。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式