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
相关产品推荐
相关产品推荐

