java - 在 Java 中动态创建对象

标签 java design-patterns object

是否有(更好的)动态创建对象的方法?

现在我正在使用一个简单的“工厂模式”解决方案,如下所示:

   String classType = generalObject.getClass().toString();

    if(classType.equals("class be.testApp.UserObject")) {
        return UserObject.fromByteArray(data);
//return new UserObject();
    }
    else if(classType.equals("class.be.testApp.NewsObject"))    {
        return NewsObject.fromByteArray(data);
//return new NewsObject();      
    }

最佳答案

这段代码不是工厂模式,也没有创建对象。您评估类名并调用类的静态方法。


现在看起来您有一个对象 (generalObject) 并且想要创建一个完全相同类型的新实例。 如果所有可能的类型都有一个公共(public)默认构造函数(约定!),那么您可以使用它来创建基于给定对象的新实例:

Object newObject = generalObject.getClass().newInstance();

(但也许我还是没明白你的意思……)

关于java - 在 Java 中动态创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885055/

相关文章:

Java Properties.load() - 如何切换键值对?

java - Java 中数据的快速范围/间隔查找

java - 什么是 FrontController 设计模式? DispatcherServlet 使用它的级别是多少?

Javascript:设计最佳实践

使用@[] 和 initWithObjects 的 Objective-C 数组分配

Java 套接字权限被拒绝 : connect

java - Ivy 无法解析依赖项 : What to check, 怎么办?

java - 创建规则引擎的最佳设计模式

design-patterns - 类中最重要的方法有术语吗?

javascript - 如何最好地调用简单的过滤函数