无法从另一个类(Java)调用方法

时间:2017-03-02 00:37:42

标签: java oop

在第一堂课我有:

package example.identification;

import example.common.InvalidDataException;

public class IdentifiableImpl implements Identifiable {

    private String identifier;

    public IdentifiableImpl(String id) throws InvalidDataException {
        setIdentifier(id);
    }

    @Override
    public String getIdentifier() {
        return identifier;
    }

    public final void setIdentifier(String id) throws InvalidDataException {
        if (id == null || id.length() == 0) {
            throw new InvalidDataException("Null or empty ID passed to setIdentifier");
        }
        identifier = id;
    }
}

在第二节课中我有:

package example.identification;
public class IdentifiableTest {

@Test
    public void testGetIdentifier() {
        IdentifiableImpl instance = new IdentifiableImpl();
        instance.setIdentifier("Test");
    }

问题出现在第二个类中,行instance.setIdentifier("Test"); IDE在该行上报告了一条错误,上面写着"找不到符号。"

我的问题是,为什么我不能在setIdentifier("Test")上调用instance方法?

1 个答案:

答案 0 :(得分:1)

您需要在IdentifiableImpl.java类中添加构造函数,并且在IdentifiableTest.java类中缺少大括号

您需要构造函数,否则您将无法创建实例。您无法在setIdentifier("Test")上致电instance,因为它从未创建过。

在IdentifiableImpl中添加了构造函数

public IdentifiableImpl() {

}

修复了testGetIdentifier中的大括号

public void testGetIdentifier() {
    IdentifiableImpl instance = new IdentifiableImpl();
    instance.setIdentifier("Test");
    System.out.println(instance.getIdentifier());
}

在这些更改后,它对我来说很好用