Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java不兼容类型:inputstream无法转换为扫描仪_Java_Arrays_Arraylist_Java.util.scanner_Inputstream - Fatal编程技术网

Java不兼容类型:inputstream无法转换为扫描仪

Java不兼容类型:inputstream无法转换为扫描仪,java,arrays,arraylist,java.util.scanner,inputstream,Java,Arrays,Arraylist,Java.util.scanner,Inputstream,当我尝试使用此代码执行程序时,我得到了不兼容的类型inputstream无法转换为scanner error。问题出在哪里 private ArrayList<Student> readFile() throws FileNotFoundException { readOnCampusStudent (in) ArrayList<Student> studentList = new ArrayList<Student>();

当我尝试使用此代码执行程序时,我得到了不兼容的类型inputstream无法转换为scanner error。问题出在哪里

private ArrayList<Student> readFile() throws FileNotFoundException {
            readOnCampusStudent (in) ArrayList<Student> studentList = new ArrayList<Student>();
            //info.add(type, id, lname, fname, resstat, prfee, credits);
            String fName = "p02-students.txt";
            Scanner in = new Scanner(new File(fName));
            String studentType;
            while (in.hasNext()) {
               // studentList.add(type, id, lname, fname, resstat, prfee, credits);
                if ("C".equals(in.next())) {
                    studentList.add(readOnCampusStudent(in));
                }
                studentList.add(readOnlineStudent(in));
                in.nextLine();
            }
            in.close();
            return studentList;
        }
p02-students.txt
这些代码行都在主类中:

导入静态java.lang.System.in

Scanner in=new Scanner(新文件(fName))

你有两件事叫做“入”。这可能会导致问题中的错误-它会混淆是导入的“in”(是一个InputStream)还是变量“in”(是一个扫描仪)。我建议您不要导入java.lang.System.in,而是在需要使用该变量时键入System.in。这样它就不会与变量冲突

    private ArrayList<Student> readFile() throws FileNotFoundException {

        String fName = "p02-students.txt";

        Scanner scan = new Scanner(new File(fName));

        ArrayList<Student> studentList = new ArrayList<Student>();

        while (scan.hasNext()) {

             String studentType = scan.next();

            if (studentType.equals("C")) {
                studentList.add(readOnCampusStudent(scan));
            } else {
                studentList.add(readOnlineStudent(scan));
            }

            scan.nextLine();
        }

        scan.close();
        return studentList;
    }

我打印出了价值观,对每个学生都很有效。不要忘记在学生课堂上更改mid变量的数据类型

问题不清楚,请添加更多详细信息。您的代码中存在的问题不仅仅是不兼容的类型…
ReadOnCampussStudent(in)ArrayList studentList=new ArrayList()-这行到底是什么?@CRazyProgrammer程序有四个类,但这就是我得到错误的地方。如果你愿意,我可以设置四门课的代码。程序应该读取p02-students.txt的内容,并计算每个学生的学费。然后程序应该将学费结果写入名为p02-students.txt的输出文件中。@D M这就是产生错误的原因。伙计。我应该如何设置?或者,您可以重命名该变量,使其不被称为“in”。感谢您的帮助。如果您仍然面临此问题,请告诉我。非常感谢。这就解决了错误。我还得到了输入不匹配错误,我按照你的建议做了。现在我准备好了。
public abstract class Student implements Comparable<Student> {
        private int mCredits;
        private String mFname;
        private String mLname;
        private int mId;
        private double mTuition;

        public Student(int pId, String pFname, String pLname) {
            mId=pId;
            mFname = pFname;
            mLname = pLname;
        }

    //Implement this method in the subclass
    //of student class
        public abstract void calcTuition();

    //Set credits of student
        public void setCredits(int pCredits) {
            mCredits = pCredits;
        }

    //Returns the credits of student
        public int getCredits() {
            return mCredits;
        }

    //Set first name
        public void setFname(String pFname) {
            mFname = pFname;
        }

    //Returns first name
        public String getFirstName() {
            return mFname;
        }

    //Set id
        public void setid(int pId) {
            mId = pId;
        }

    //Retunrns id
        public int getid() {
            return mId;
        }

    //Set last name
        public void setLname(String pLname) {
            mLname = pLname;
        }

    //Returns last name
        public String getLastName() {
            return mLname;
        }

    //Returns the tuition fee
        public void setTuition(double pTuition) {
            mTuition = pTuition;
        }

    //Returns the tuition fee
        public double getTuition() {
            return mTuition;
        }

        @Override
        public int compareTo(Student pStudnet) {
            if (getid() < pStudnet.getid()) {
                return -1;
            } else if (getid() > pStudnet.getid()) {
                return 1;
            } else {
                return 0;
            }
        }

        int getId() {
            return mId;
        }

        String getLName() {
            return mLname;
        }

        String getFName() {
            return mFname;
        }

        void setResidency(boolean b) {
        }

        void setProgramFee(double fee) {
        }
    }

    abstract class onCampusStudent extends Student
    {
        boolean mResident;
        double mProgramFee;

        onCampusStudent(int pId, String pFname, String pLname)
        {
            super(pId,pFname,pLname);
        }
    }

    abstract class onlineStudent extends Student
    {
        boolean mResident;
        double mProgramFee;

        onlineStudent(int pId, String pFname, String pLname)
        {
             super(pId,pFname,pLname);
        }
    }
public class Sorter {

    public static final int SORT_ASCENDING = 0;
    public static final int SORT_DESCENDING = 1;

    /**
    * Sorts pList into ascending (pOrder = SORT_ASCENDING) or descending
    * (pOrder = SORT_DESCENDING) order using the insertion sort algorithm.
    */
    public static void insertionSort(ArrayList<Student> pList, int pOrder) {
        for (int i = 1; i < pList.size(); ++i) {
            for (int j = i; keepMoving(pList, j, pOrder); --j) {
                swap(pList, j, j - 1);
            }
        }
    }

    /**
    * Returns true if we need to continue moving the element at pIndex until it
    * reaches its proper location.
    */
    private static boolean keepMoving(ArrayList<Student> pList, int pIndex, int pOrder) {
        if (pIndex < 1) {
            return false;
        }
        Student after = pList.get(pIndex);
        Student before = pList.get(pIndex - 1);
        return (pOrder == SORT_ASCENDING) ? after.compareTo(before) < 0 : after.compareTo(before) > 0;
    }

    /**
    * Swaps the elements in pList at pIndex1 and pIndex2.
    */
    private static void swap(ArrayList<Student> pList, int pIndex1, int pIndex2) {
        Student temp = pList.get(pIndex1);
        pList.set(pIndex1, pList.get(pIndex2));
        pList.set(pIndex2, temp);
    }
}
public class TuitionConstants {
    public static final int ONCAMP_ADD_CREDITS = 350;
    public static final int MAX_CREDITS = 18;
    public static final int ONCAMP_NONRES_BASE = 12200;
    public static final int ONCAMP_RES_BASE = 5500;
    public static final int ONLINE_CREDIT_RATE = 875;
    public static final int ONLINE_TECH_FEE = 125;
}
C 8230123345450 Flintstone Fred R 0 12 
C 3873472785863 Simpson Lisa N 750 18 
C 4834324308675 Jetson George R 0 20 
O 1384349045225 Szyslak Moe - 6
O 5627238253456 Flanders Ned T 3
    private ArrayList<Student> readFile() throws FileNotFoundException {

        String fName = "p02-students.txt";

        Scanner scan = new Scanner(new File(fName));

        ArrayList<Student> studentList = new ArrayList<Student>();

        while (scan.hasNext()) {

             String studentType = scan.next();

            if (studentType.equals("C")) {
                studentList.add(readOnCampusStudent(scan));
            } else {
                studentList.add(readOnlineStudent(scan));
            }

            scan.nextLine();
        }

        scan.close();
        return studentList;
    }
private onCampusStudent readOnCampusStudent(Scanner pIn) {

        String id = pIn.next();

        String lname = pIn.next();

        String fname = pIn.next();

        System.out.println(id + " " + lname + " " + fname);
    }