为什么我的toString方法不能用Java工作?

时间:2014-01-28 00:07:01

标签: java tostring

我正在编写新闻Feed程序,我正在尝试检查项目是否正确添加到列表数组中。在我的测试工具中,我尝试在添加组合项目后打印数组的内容,但是当我运行程序时,没有显示任何内容。我的toString方法(或其他方法)有问题吗?谢谢你的帮助。

public class Feed {

private final int DEFAULT_MAX_ITEMS = 10;   // default size of array

/* Attribute declarations */
private String name;        // the name of the feed
private String[] list;      // the array of items
private int size;           // the amount of items in the feed

/**
 * Constructor
 */
public Feed(String name){
    list = new String[DEFAULT_MAX_ITEMS];
    size = 0;
}

/**
 * add method adds an item to the list
 * @param item
 */
public void add(String item){
    item = new String();

    // add it to the array of items
            // if array is not big enough, double its capacity automatically
            if (size == list.length)
                expandCapacity();

    // add reference to item at first free spot in array
            list[size] = item;
            size++; 
    }

/**
 * expandCapacity method is a helper method
 * that creates a new array to store items with twice the capacity
 * of the existing one
 */
private void expandCapacity(){
    String[] largerList = new String[list.length * 2];
    for (int i = 0; i < list.length; i++)
        largerList[i] = list[i];

    list = largerList;
}


/**
 * toString method returns a string representation of all items in the list
 * @return 
 */
public String toString(){
    String s = "";
    for (int i = 0; i < size; i++){
        s = s + list[i].toString()+ "\n";
    }
    return s;
}

/**
 * test harness
 */

public static void main(String args[]) {
    Feed testFeed = new Feed("test");
    testFeed.add("blah blah blah");
    System.out.println(testFeed.toString());
}

}

1 个答案:

答案 0 :(得分:0)

这里有很多问题。首先,我建议:

1)丢失“size”成员变量

2)用ArrayList<String> list替换成员变量“String [] list”

3)使用list.size()代替单独的“尺寸”变量

4)您也可能丢失(或简化)“add()”方法。只需使用list.add()代替。

5)逐步调试。验证“list”会按预期添加到您期望的位置。

最后

6)逐步调试“toString()”。确保“list”具有您期望的大小和内容。

'希望有所帮助......