有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

尝试编译java文件时出现编译错误

我在尝试用java编译时遇到了几个错误。这是我关于堆栈溢出的第一篇文章,请指出我文章中的错误

这段代码是我为一个实用程序编写的一些测试代码

以下是我的代码:

public class MiscUtilsTest
{

    public static void main(String[] args)
    {
    testMax();
    testCalcGrade();
    testRoomArea();
    }

    public static void testMax()
    {
    int num, num2, num3;

    num = MiscUtils.max(9, 2);
    assert 9 == num;

    num2 = MiscUtils.max(6, 1);
    assert 6 == num2;

    num3 = MiscUtils.max(7, 7);
    assert 7 == num3;

    }

    public static void testCalcGrade()
    {
    int grade1, grade2, grade3, grade4, grade5, grade6, grade7, grade8, grade9;

    grade1 = MiscUtils.calcGrade(2);
    assert "F".equals(grade1);

    grade2 = MiscUtils.calcGrade(15);
    assert "F".equals(grade2);

    grade3 = MiscUtils.calcGrade(28);
    assert "F".equals(grade3);

    grade4 = MiscUtils.calcGrade(33);
    assert "F".equals(grade4);

    grade5 = MiscUtils.calcGrade(40);
    assert "F".equals(grade5);

    grade6 = MiscUtils.calcGrade(49);
    assert "F".equals(grade6);

    grade7 = MiscUtils.calcGrade(82);
    assert "8".equals(grade7);

    grade8 = MiscUtils.calcGrade(125);
    assert "".equals(grade8);

    grade9 = MiscUtils.calcGrade(-12);
    assert "".equals(grade9);

    }

    public static void testRoomArea()
    {
    int test, test2, test3;

    test2 = MiscUtils.roomArea(-10, 5);
    assert 0 == test;

    test2 = MiscUtils.roomArea(6, 2);
    assert 0 == test2;

    test3 = MiscUtils.roomArea(5, 10);
    assert 50 == test3;

    }
}

以下是我在编译时遇到的错误-

MiscUtilsTest.java:45: error: cannot find symbol
MiscUtilsTest.java:30: error: incompatible types: String cannot be converted to int
    grade1 = MiscUtils.calcGrade(2);
                                ^
MiscUtilsTest.java:33: error: incompatible types: String cannot be converted to int
    grade2 = MiscUtils.calcGrade(15);
                                ^
MiscUtilsTest.java:36: error: incompatible types: String cannot be converted to int
    grade3 = MiscUtils.calcGrade(28);
                                ^
MiscUtilsTest.java:39: error: incompatible types: String cannot be converted to int
    grade4 = MiscUtils.calcGrade(33);
                                ^
MiscUtilsTest.java:42: error: incompatible types: String cannot be converted to int
    grade5 = MiscUtils.calcGrade(40);
                                ^
MiscUtilsTest.java:45: error: incompatible types: String cannot be converted to int
    grade6 = MiscUtils.calcGrade(49);
                                ^
MiscUtilsTest.java:48: error: incompatible types: String cannot be converted to int
    grade7 = MiscUtils.calcGrade(82);
                                ^
MiscUtilsTest.java:51: error: incompatible types: String cannot be converted to int
    grade8 = MiscUtils.calcGrade(125);
                                ^
MiscUtilsTest.java:54: error: incompatible types: String cannot be converted to int
    grade9 = MiscUtils.calcGrade(-12);
                                ^
9 errors

对于那些询问类文件的人,可以从MiscUtils中获取代码。阶级

import java.io.PrintStream;
import java.io.PrintStream;

public class MiscUtils
{
static
{
    System.out.println("[FYI: You are testing the *working* version of MiscUtils. Your test harness *should not* find any problems.]");
 }

public static int max(int paramInt1, int paramInt2)
{
    int i = paramInt1;
    if (paramInt2 > paramInt1) {
    i = paramInt2;
    }
    return i;
}

public static String calcGrade(int paramInt)
{
    String str = "";
    if ((paramInt >= 0) && (paramInt <= 100)) {
    if (paramInt >= 50) {
    str = str + paramInt / 10;
    } else {
    str = "F";
    }
    }
    return str;
}

public static int roomArea(int paramInt1, int paramInt2)
{
    int i = 0;
    if ((paramInt1 > 0) && (paramInt2 >= paramInt1) && (paramInt2 <= 3 * paramInt1)) {
    i = paramInt1 * paramInt2;
 }
    return i;
}
}

共 (3) 个答案

  1. # 1 楼答案

    更改:

     int grade1, grade2, grade3, grade4, grade5, grade6, grade7, grade8, grade9;
    

    String grade1, grade2, grade3, grade4, grade5, grade6, grade7, grade8, grade9;
    

    因为calcGrade()返回一个String而不是一个int

  2. # 2 楼答案

    我认为您的MiscUtils类缺少编译器错误中显示的方法

  3. # 3 楼答案

    您尚未导入类MiscUtils。因此,它的给出是错误的

    在类miscutiltest之前使用导入语法

    import MiscUtils.*;