在第一堂课我有:
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
方法?
答案 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());
}
在这些更改后,它对我来说很好用