执行程序给出 int 无法转换为 java.lang.string

Executing program gives int cannot be converted into java.lang.string

我目前正在使用 BlueJ(被模块导师强制使用,我讨厌它)并且每次尝试执行代码时都会出现错误。

incompatible types: java.lang.String cannot be converted into int

我的代码如下:

public class middle 
{
public static void main (String[] args)
{
    String numeroUno = args[0];
    String numeroDos = args[1];
    String numeroTres = args[2];

    double num1 = Double.parseDouble(args[0]);
    double num2 = Double.parseDouble(args[1]);
    double num3 = Double.parseDouble(args[2]);

    middle(num1, num2, num3);
}

public static void middle(double n1, double n2, double n3)
{
    double [] values = {n1, n2, n3};
    double newarr;
    boolean sorted = false;

    while(!sorted)
    {
        sorted = true;
        for(int i=0; i<values.length-1; i++)
        {
            if(values[i] > values[i+1])
            {
                double swapsies = values[i+1];
                values[i+1] = values[i];
                values[i] = swapsies;
                sorted = false;
            }
        }
    }

    System.out.print(values[1] + " is between " + values[0] + " and " + values[2]);

}
}

首先,我的问题是我在哪里犯了错误,但其次,是否有另一种方法来构造这段代码,即完全重写它以实现同样的目的。我真的不习惯以这种方式编写代码,而且我在 OOP 方面遇到了困难。此特定练习的目的是编写代码,该代码将 return 用户输入的中间值数字。

谢谢!

BlueJ 用于调用方法或构造函数的参数接口旨在采用 java 语法中的参数。因此,例如 main 的参数 window 将期望以以下形式输入:

{"2" , "3" , "4"}

注意双引号,就像 java 中一样。事实上,这个原则对于任何类型的构造函数都是可扩展的。例如,也可以给出 {new String("2"), new String("3"), ... 作为参数。