繁体   English   中英

无法将字符串值设置为setter

[英]Could not set string value to setter

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);

这意味着您正在尝试运行与该类在编译时使用的版本不同的版本。 清理构建目录并重新编译所有内容。

您可以分享您在课堂上编写的代码吗? 每当您获得NoSuchMethod时,您首先要看的就是方法签名。

例如:

  • 修饰符,例如public,private等:请确保正确使用了访问修饰符,如果您要调用的方法创建的是类(对象)的实例,而该方法是私有的,则您将无法访问它。

  • 方法名称:仔细查看方法名称,并确保正确键入。 如果您使用的是IDE,请让自动完成功能帮助您避免错误。

  • 该参数列出了它们的数据类型:确保要传递给方法的变量/对象的数据类型与方法已声明的数据类型匹配(该方法所期望的)。

在您的情况下,我将首先查看参数列表。

如果要阅读有关方法定义的更多信息,可以转到Java参考: http : //docs.oracle.com/javase/tutorial/java/javaOO/methods.html

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM