MyClass有一个setter但是当我给它赋值时,我得到错误:
java.lang.NoSuchMethodError: MyClass.setValue(Ljava/lang/String;)
MyClassIfc.java
public interface MyClassIfc extends EYSDomainIfc
{
public abstract String getValue();
public abstract void setValue(String paramString);
}
MyClass.java
public class MyClass implements MyClassIfc
{
protected String value = null;
public String getValue()
{
return this.value;
}
public void setValue(String paramString)
{
this.value= paramString;
}
}
调用sipnet:
MyClassIfc myClass = ((MyDomainObjectFactoryIfc)MyDomain.getFactory()).getMyInstance();
value = MyUtilities.getValue(utility, data, logger, serviceName);
myClass.setValue(value);
答案 0 :(得分:0)
这意味着您尝试从编译时使用的那个版本运行该类的不同版本。清理构建目录并重新编译所有内容。
答案 1 :(得分:0)
你能分享你在课堂上写的代码吗?每当你得到NoSuchMethod时,你首先要看的是方法签名。
例如:
修饰符 - 例如public,private等:确保正确访问修饰符,如果您正在调用创建类(对象)实例的方法,并且该方法是私有的,则不会是能够访问它。
方法名称:仔细查看方法名称并确保正确输入。如果您使用的是IDE,请让自动填充帮助您避免错误。
参数列出了它们的数据类型:确保传递给方法的变量/对象的数据类型与方法声明的数据类型(方法期望的内容)匹配。
在你的情况下,我会先找参数列表。
如果您想了解有关方法定义的更多信息,可以访问java参考:http://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
希望这有帮助!