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

Java导入类后无法在其他类方法中调用其构造器问题

问题分析与解决方案

你遇到的问题非常典型——在Java中调用构造器实例化对象时,必须使用new关键字,你的代码里刚好漏掉了它,所以编译器报cannot find symbol错误:它误以为你在调用一个名为SomeClass的普通方法,但实际上并不存在这样的方法。

为什么字段里的数组声明能正常工作?

你在类字段里写的SomeClass[] someClassArray = new SomeClass[2];是完全合法的,因为这行代码只是创建了一个能容纳2个SomeClass对象引用的数组容器,并没有真正实例化SomeClass对象,数组里的每个元素此时都是null,不需要调用构造器,所以编译器不会报错。

修正后的代码

把方法里的调用改成带new的形式即可:

import SomeClass;

class AnotherClass {
    SomeClass[] someClassArray = new SomeClass[2]; // works

    void someMethod() {
        this.someClassArray[0] = new SomeClass(); // 加上new关键字,正常实例化对象
    }
}

额外说明

如果SomeClass的构造器需要参数,记得在new SomeClass()里传入对应的参数,比如new SomeClass(parameter1, parameter2),这样才能正确完成对象的实例化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:08:59