【问题标题】:The method <method> is undefined for the type string对于类型字符串,方法 <method> 未定义
【发布时间】:2014-12-09 06:36:01
【问题描述】:

好的,所以我有一个超类,下面有一个 getter 方法:

public String getBorrowerID(){
return borrowerID;
}

然后我有一个子类,其中包含一个声明为实例变量的新数组来存储用户 ID:

private String [] resQueue = new String[5];

还有一个带有名为“borrowerID”的变量作为参数传入的借用方法,我必须将数组中的第一个ID与borrowerID进行比较:

 if( borrowerID == resQueue[0].getBorrowerID())
 {
     super.borrow(borrowerID);
     resCount--;

但是,我在这一行收到错误“方法 getBorrowerID() 未定义为 String 类型”:

    if( borrowerID == resQueue[0].getBorrowerID())

有什么想法吗?

【问题讨论】:

  • getBorrowerID() 不是 String 的方法。如何使用 over string ?
  • 附带说明:== 不是检查字符串相等性的最佳方法。
  • 你期望resQueue[0].getBorrowerID()做什么?
  • 我认为 David 的解决方案对我有所帮助。而且,是的,你们是对的,使用“==”并不是解决这个问题的最佳方式。感谢您的回复。欣赏!

标签: java arrays inheritance methods


【解决方案1】:

getBorrowerID() 是在您的一个类中定义的,而不是在 String 中定义的,因此您可以通过 String 引用来调用它。

您只能通过包含它的类的实例来调用它。例如,如果您的包含getBorrowerID() 的类被称为YourClass,您可以这样调用该方法:

YourClass var = new YourClass();
String id = var.getBorrowerID();

【讨论】:

    【解决方案2】:

    你的意思是:

    if ( resQueue[0].equals(getBorrowerID()) ) {
        // ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2013-11-11
      相关资源
      最近更新 更多