是否有一种方法可以确保使用我的类创建的对象获得用户在java中分配给它的名称
我使用构造函数构建了一个类:是否有一种方法可以确保使用我的类创建的对象获得用户在java中分配给它的名称,java,Java,我使用构造函数构建了一个类: public Door(String name){ this.name = name; } 有没有一种方法可以让我创建一个默认的构造函数,在这个构造函数中,无论用户分配给这个对象什么,它的名称都会变成什么。例如: { Door blackDoor = new Door(); } 将使 blackDoor.name=blackDoor?否。很抱歉除非。。。不,算了吧。显而易见的问题是:为什么需要这个?这可以通过反射实现,但只能在调试时实现。例如,见。
public Door(String name){
this.name = name;
}
有没有一种方法可以让我创建一个默认的构造函数,在这个构造函数中,无论用户分配给这个对象什么,它的名称都会变成什么。例如:
{
Door blackDoor = new Door();
}
将使
blackDoor.name=blackDoor?否。很抱歉除非。。。不,算了吧。显而易见的问题是:为什么需要这个?这可以通过反射实现,但只能在调试时实现。例如,见。不要在生产构建中使用此选项。由于编译器的优化,名称可能会更改,变量可能会被删除。@GiantTree非常感谢。我只是好奇是否能做到。
public class Bleh {
public static void main(String[] args) {
BlackDoor bd = new BlackDoor();
System.out.println(bd.name);
}
}
class Door {
String name;
public Door(){
this.name = this.getClass().getName();
}
}
class BlackDoor extends Door{
}