0

无法确定导致 java 编译器抛出的原因

uses unchecked or unsafe operations.

正在执行此操作的类如下:

import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
import java.util.Vector;



public class Proj2 {

/**
 * args[0] the maximum depth of the trie
 * args[1] is the number of substrings to print
 * args[2] name of first file containing text
 * args[3] name of second file containing text
 * @param args
 */
public static void main(String[] args) throws Exception {
    String input = args[0];
    int one = 0;
    int two = 0;
    String a;
    String b;
    String[] tokens = input.split("\\s+");
    if (tokens.length != 4) {
        throw new IllegalArgumentException(
                "Argument must contain two integers and two filenames.");
    }
    try {
        one = Integer.parseInt(tokens[0]);
        two = Integer.parseInt(tokens[1]);
    } catch (Exception e) {
        System.out.println("First two arguments must be integers");
    }
    System.out.println("" + one + " " + two + " " + tokens[2] + " "
            + tokens[3]);
    try {

        Scanner sc1 = new Scanner(new File(tokens[2]));
        ;

        Scanner sc2 = new Scanner(new File(tokens[3]));
        String s = "";
        while (sc1.hasNext())
            s += sc1.nextLine();

        Character[] in1 = new Character[s.length()];
        for (int i = 0; i < s.length(); i++) {
            in1[i] = s.charAt(i);
        }
        s = "";
        while (sc2.hasNext())
            s += sc2.nextLine();
        Character[] in2 = new Character[s.length()];
        for (int i = 0; i < s.length(); i++) {
            in2[i] = s.charAt(i);
        }
        Trie<Character> tree1 = new Trie<Character>(in1,
                Integer.parseInt(tokens[0]));
        Trie<Character> tree2 = new Trie<Character>(in2,
                Integer.parseInt(tokens[0]));
        Vector<Vector<Character>> max = tree1.getMax(Integer
                .parseInt(tokens[1]));
        Vector<Integer> max_n = tree1.getMaxCount(Integer
                .parseInt(tokens[1]));

        System.out.println("Sequence    # in " + tokens[2] + "\t# in "
                + tokens[3]
                + "\n--------    --------------\t--------------");

        for (int i = 0; i < max.size(); i++) {
            int n = 0;
            if (tree2.consist(max.get(i)))
                n = tree2.getCount(max.get(i));
            s = "";
            for (int j = 0; j < max.get(i).size(); j++)
                s += max.get(i).get(j);
            System.out.println(s + "\t    " + max_n.get(i) + "\t\t\t" + n);
        }
    } catch (Exception e) {
        System.out.println("Incorrect file name");
    }

}

}

我不得不修改类以捕获更多异常,并且在我使用 args[1]、args[2] 等代替解析标记之前,它并没有抛出它。但是由于我指定那些是整数,我很困惑为什么编译器仍然抛出错误。任何见解将不胜感激。谢谢你。导致错误的代码是实例化树。

4

0 回答 0