You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Main类中调用FormenFabrik类的createForm方法?

如何在Main类中调用FormenFabrik的createForm方法

核心步骤

  • 先实例化FormenFabrik对象(因为createForm是实例方法,不能直接通过类名调用)
  • 调用createForm方法并传入指定字符串,用父类Form类型接收返回的子类实例

完整Main类代码示例

public class Main {
    public static void main(String[] args) {
        // 1. 创建工厂类实例
        FormenFabrik formFabrik = new FormenFabrik();

        // 2. 创建Kreis实例
        Form kreisForm = formFabrik.createForm("Kreis");
        // 若需调用Kreis专属方法,先判断类型再强转
        if (kreisForm instanceof Kreis) {
            ((Kreis) kreisForm).draw(); // 假设Kreis有draw()方法
        }

        // 3. 创建Rechteck实例
        Form rechteckForm = formFabrik.createForm("Rechteck");
        if (rechteckForm instanceof Rechteck) {
            ((Rechteck) rechteckForm).draw(); // 假设Rechteck有draw()方法
        }
    }
}

优化建议(可选)

你当前的FormenFabrik类中,else分支会默认返回Rechteck,无论传入的字符串是否为"Rechteck"。如果需要严格匹配类型,可以修改为:

public class FormenFabrik {
    public Form createForm(String newform) {
        if ("Kreis".equals(newform)) {
            return new Kreis();
        } else if ("Rechteck".equals(newform)) {
            return new Rechteck();
        } else {
            // 抛出异常或返回null,根据业务需求处理
            throw new IllegalArgumentException("不支持的图形类型:" + newform);
        }
    }
}

内容的提问来源于stack exchange,提问作者Wannabree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:55:03