![](/img/trans.png)
[英]Java8 transform a [List<Object>, String] in a Map<Object, String>
[英]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 件完全不同的事情:
您创建了一个变量,类型为 Object,名称name
。 这就像一张白纸,您可以在上面绘制藏宝图。 那是Object name;
部分。
你制作了一个新的 object。 ( new Object()
部分)。 它没有名字。 这就像创造一个新的宝箱,并将其埋在沙子里。
你已经画了你的宝藏map,就是你刚刚埋的宝藏的路线(就是中间的=
)。
您现在可以撕毁您的宝藏 map( name = null
- 在那里,消灭了 map,),但宝藏仍然存在。 埋在沙子里,如果没有其他藏宝图 X 标记那个宝藏的话。 最终垃圾收集器将挖掘它并摆脱它。
换句话说,对象可以存在于没有变量指向它的地方。
也可以多制作藏宝图,复制参考:
Object name = new Object();
Object otherName = name;
现在你有 1 个宝藏( new Object()
,没有名字,还有 2 个藏宝图( name
和otherName
),它们目前已经在它们上绘制了前往那个宝藏的地图。但是你可以改变它:
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.