【问题标题】:Classes and Objects with ArrayList [closed]带有 ArrayList 的类和对象 [关闭]
【发布时间】:2014-01-06 02:45:44
【问题描述】:

我正在尝试创建一个程序,该程序将文件名作为参数,打开该文件,读取该文件中的所有文本(大约 1 个段落),然后为用户提供一些选项来操作该段落。

我在使用询问用户命令的扫描仪时遇到问题。例如,如果用户按1,我希望它把用户带到public void palindrome(),但它不会编译。

我还没有为 public void palindrome 编写代码,但应该没有任何编译错误。

import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;
import java.io.File;


public class Test {

        public static void main (String [] args) {

                Scanner scanner = new Scanner(new File(args[0]));
                ArrayList<String> strings = new ArrayList<String>();
                while( scanner.hasNext() ) {
                        strings.add( scanner.next() );
                }

                ArrayList<String> a = new ArrayList<String>(strings);



                while (true) {
                        System.out.println ("\nWhat would you like to do? Here are your options: \nPress 1 to Print all palindromes \nPress 2 to Replace any letter  \nPress 3 to remove all occurences of a word \nPress 4 to exit\n");
                        Scanner s = new Scanner(System.in);
                        String command = s.next();

                        if (command.equals("1")) {
                                a.palindrome();
                        } else if (command.equals("2")){
                                a.letter();
                        } else if (command.equals("3")){
                                a.word();
                        }  else if (command.equals("4")){
                                System.exit(0);
                        }
                }
        }

        public void palindrome () {

        }


        public void letter () {

        }

        public void word () {

        }

}

【问题讨论】:

  • 编译器编译失败时报错。你为什么不发布错误?

标签: java arrays class object arraylist


【解决方案1】:

您已将a 定义为Arraylist。并正在致电a.palindrome()

一个Arraylist没有palindrome()的方法,相信你只是想调用你的Test类的palindrome()

要做到这一点:

  • 在您的主类中创建Test 的实例,然后在该实例上调用palindrome()(首选选项)

  • 将方法设为静态,然后调用Test.palindrome()

在任何一种情况下,您都可以考虑让它接受 Arraylist 的参数

【讨论】:

    【解决方案2】:

    您需要做的是创建Test 类的实例

    Test test = new Test();
    

    然后调用

    test.palindrome();
    

    编译器失败是因为,因为您调用了 a.palindrome()a 作为 ArrayList&lt;String&gt;() 的一个实例,并且它没有方法 ArrayList 类没有称为 palindrome() 的方法

    【讨论】:

      猜你喜欢
      • 2014-09-21
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多