繁体   English   中英

如何将 Object 名称转换为 Java 中的字符串

[英]How to transform an Object name into a String in Java

我想从 Object 的名称中创建一个字符串

例如:

Object objectName = new Object;

现在我想要一个由 Object 的名称组成的字符串,以便我可以打印它

System.out.println(stringWithObjectName); \\ print objectName

你是怎样做的?

那是..不是它的工作原理。 您对 java 的工作原理有一个基本的误解。 在:

Object name = new Object();

只是创建了一个名为name的新 object。 不,你做了 3 件完全不同的事情:

  1. 您创建了一个变量,类型为 Object,名称name 这就像一张白纸,您可以在上面绘制藏宝图。 那是Object name; 部分。

  2. 你制作了一个新的 object。 new Object()部分)。 它没有名字。 这就像创造一个新的宝箱,并将其埋在沙子里。

  3. 你已经画了你的宝藏map,就是你刚刚埋的宝藏的路线(就是中间的= )。

您现在可以撕毁您的宝藏 map( name = null - 在那里,消灭了 map,),但宝藏仍然存在。 埋在沙子里,如果没有其他藏宝图 X 标记那个宝藏的话。 最终垃圾收集器将挖掘它并摆脱它。

换句话说,对象可以存在于没有变量指向它的地方

也可以多制作藏宝图,复制参考:

Object name = new Object();
Object otherName = name;

现在你有 1 个宝藏( new Object() ,没有名字,还有 2 个藏宝图( nameotherName ),它们目前已经在它们上绘制了前往那个宝藏的地图。但是你可以改变它:

Object name = new Object();
Object otherName = name;
name = someOtherObject;

现在是 map 的名称,原来有一个 map 到这个 object 上,现在有一个 Z1D78DC8ED51249E51AE8B511 上完全不同的宝物。

你的问题是:我怎么问宝物指向它的map的名字。 希望这个解释清楚地说明为什么这根本不可能,并且 java 无论如何都不允许您这样做。

变量名在运行时被删除。 但是你可以做到这一点的一种方法是使用 map。

Map m = ...;
m.put(object, objectName);

暂无
暂无

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

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