java - 匿名类——我们可以为同一个匿名类创建两个新对象吗?

标签 java class object reference anonymous-inner-class

当我们创建一个匿名类时,比如

Employee emp = new Employee() {
  void get() {
    //Some body
  }
  void put() {    
    //Some body
  }
};
emp.set();
emp.get();

对象引用emp指的是上述匿名内部类的对象。 我们还可以创建另一个匿名类,其对象可以通过相同的对象引用来引用,例如

emp = new Employee() {
      void x() {
        //Some body
      }
      void y() {    
        //Some body
      }
    };
    emp.x();
    emp.y();

但是有没有办法为同一个匿名类创建另一个对象呢?如果需要,是否可以为现有匿名类创建新对象?

最佳答案

作为一般经验法则 - 如果您想要同一个匿名类的多个实例,很可能它不应该是匿名的 - 只需将它设为一个普通的旧命名类并根据需要实例化它的任意多个对象.

不过,您可以使用一个肮脏的技巧,即访问实例的 getClass() 并使用反射来实例化一个新实例:

Employee emp2 = emp.getClass().newInstance();

关于java - 匿名类——我们可以为同一个匿名类创建两个新对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344577/

相关文章:

java - BeanUtils : populate String Date formatted map field to Date property

c++ - 从第三方类实现虚函数

C++类重定义错误

Python:我应该将数据放在列表中还是对象属性中?

java - 获取完整的 html 代码 - Java?

java - 检测对象是否存储状态或是否可以共享

class - Scala——共同特质的二代传承

c++ - 内存布局 C++ 对象

json - Firebase 上的多对多关系

java - 元素文本中 '&' 的 XML 解析问题(续)