Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种方法可以确保使用我的类创建的对象获得用户在java中分配给它的名称_Java - Fatal编程技术网

是否有一种方法可以确保使用我的类创建的对象获得用户在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{
}