方法length()未定义类型

时间:2016-01-24 23:41:51

标签: java

我正在尝试使用length()方法打印出String的长度,但我不断收到标题中提到的错误。我是Java新手,我认为这个方法是构建到IDE(Eclipse)中的。

import class JumbleHelper {

    String word;

    public JumbleHelper(String jumbleWord)
    {
        word = jumbleWord;
    }

    public static void main(String[] args) 
    {
        JumbleHelper str1 = new JumbleHelper("maybe");
        System.out.println(str1.length());
    }
}

5 个答案:

答案 0 :(得分:9)

您尚未实施名为' length'在jumblehelper。仅仅因为它中唯一的值是字符串并不意味着你可以使用它的所有功能。这不是继承的工作方式。

然而,str1.word.length()将起作用。

或者你可以在jumblehelper中添加一个名为length的函数,如下所示:

public int length(){ return word.length() };

答案 1 :(得分:2)

如果班级JumbleHelperString,那么这并不意味着它有自己的方法。 Compositioninheritance不同。实际上,您无法继承String,因为它是final

你可能意味着

JumbleHelper str1 = new JumbleHelper("maybe");
System.out.println(str1.word.length());

答案 2 :(得分:2)

str1的类型是" JumbleHelper"而不是字符串。

  • 如果您想真正使用JumbleHelper封装String(在这种情况下使用静态main方法会非常奇怪),请将长度函数添加到JumbleHelper
  • 否则直接使用String对象的Length函数。

答案 3 :(得分:1)

因为您的JumbleHelper类没有提供这些功能,您必须像这样添加它或在类对象上调用单词,如上所述

import {debounce} from 'lodash';

/**
 * Redux middleware for persisting store state on change
 */
export default function takeStateSnapshot(store) {
  // wait for input to stop for a while to avoid unnecessary
  // serialization and IO overhead during busy dispatches
  const takeLazySnapshot = debounce(saveSnapshot, 250);

  return next => action => {
    const result = next(action);
    takeLazySnapshot(store.getState());
    return result;
  };
}

async function saveSnapshot(state) {
  try {
    await AsyncStorage.setItem('my-app-state', JSON.stringify(state));
  } catch (e) {
    console.error('Error persisting application state', e);
  }
}

答案 4 :(得分:-1)

我解决了它只添加这个:import java.lang.String;