我对Java相对较新,并且已经挖掘了反射功能,但由于某种原因无法弄清楚以下内容:
我需要获取实例化类的String名称。似乎我找不到用反射来做这个的方法,所以我想动态地添加一个类属性,它将包含类的名称作为String。
我该怎么做?
或者,我想在类中创建一个Public String属性,我在构造函数中指定实例化类的名称。还没弄明白怎么做。
答案 0 :(得分:0)
如果您希望Jorn Vernee评论的课程名称,您可以使用instance.getClass().getName()
由于你提到动态创建一个字符串,我想你可能意味着你想要对象本身的名称。获取对象名称的最简单方法是构造对象并将名称传递给构造函数以初始化成员字符串。
像
这样的东西public class Enemy
{
private String name;
public Enemy(String name)
{
this.name = name;
}
public getName()
{
return name;
}
}
Enemy orc = new Enemy("orc"); // could be an array of references instead of a var
orc.getName(); // returns the name of the object, obviously the name is whatever you construct the object with; so you could use any object identifier you like (such as a hash), this also means you can just construct the object and store its reference in an array