有人可以帮助我解决我的代码错误吗?

时间:2020-03-19 21:58:46

标签: java compiler-errors

从现在开始,我一直在研究这个问题,并且对我遇到的错误感到沮丧,希望在那里的人能够帮助我至少解决其中的一些问题或使我朝正确的方向发展。我的错误以** //开头。我已经尝试查找我的问题,却找不到任何真正对我有帮助的东西,但是我知道我会在这里找到一个可以这样做的人。

import java.util.*;
import java.lang.Math;

public class TestBoxBiggest
{
 public static void main(String[]args)
 {
  //10 random Integers
   Random n=new Random();
   Integer[] x= new Integer(10);**//error:cannot convert from java.lang.Integer to java.lang.Integer[]**
   for (int i=0;i<10;i++)
   {
    x[i]=n.nextInt(100); 
    System.out.println("The Integers are :\n"+x[i]);
   }
   SelectionSort.sort(x,10);
   System.out.println("The greatest Integer is:" +x);

   //10 random Doubles\

   Double[] d=new Double(10.0);**//cannot convert from java.lang.Double to  java.lang.Double[]**
   for (double k=0.0;k<10.0;k++)
   {
    d[k]=Math.random(1.0);**//cannot convert from double to int & the method random() in the type java.lang.Math is not applicable for the arguments (double)**
    System.out.println("The Doubles are:\n"+d[k]);**//cannot convert from double to int**
   }
   SelectionSort.sort(d,10);
   System.out.println("The greatest Double is:" +d);



  //5 Random box objects
   Random r=new Random();
   Box[]b=new Box[5];
   for (int i=0;i<5;i++)
   {
    int length=r.nextInt(30)+1; 
    int width=r.nextInt(30)+1;
    int height=r.nextInt(30)+1;
    b[i]=new Box(length,width,height);
    System.out.println("The boxes are: "+b[i]);
   }
   SelectionSort.sort(b,5);
   System.out.println("Boxes sorted by volume:\n");
   for (int i=0;i<5;i++)
   {
    System.out.println(b[i]+ "Volume: "+b[i].volume()); 
   }

   //5 String names
   String[] names={"Bobby","Freddie","John","Ralph","Usman"};
   System.out.println("The Strings are: "+names);

   Biggest.sort(names,names.length);//String implements comparable  **//the method sort(java.lang.String[],int) is undefined for the type Biggest**

   System.out.println("Sorted Strings\n");
   for(int i=0;i<names.length;i++)
   {
    System.out.println(names[i]); 
   }
 }
}```

2 个答案:

答案 0 :(得分:0)

发生错误是因为您不了解Java中数组的概念,并且初始化它们的语法是错误的。阅读this帖子以了解如何初始化数组。

答案 1 :(得分:0)

问题1。

Integer[] x= new Integer(10);**//error:cannot convert from java.lang.Integer to java.lang.Integer[]**

这里的问题是您试图将非数组类型new Integer(10)的对象分配给数组类型Integer[]的变量。

正确的做法如下:

Integer[] x = new Integer[] { 10 };
Integer[] y = { 10 };
int[] z = { 10 };

问题2。

下一个错误同样适用

Double[] d=new Double(10.0);**//cannot convert from java.lang.Double to  java.lang.Double[]**

您需要

Double[] d = { 10.0 };

问题3。

d[k]=Math.random(1.0);**//cannot convert from double to int & the method random() in the type java.lang.Math is not applicable for the arguments (double)**
System.out.println("The Doubles are:\n"+d[k]);**//cannot convert from double to int**

此处变量k的类型为double。数组期望int类型作为索引。只需将k的类型从double更改为int

另一个问题是Math.random()不需要任何参数。只需调用它而不传递任何参数,它将返回0到1之间的随机值

问题4。

Biggest.sort(names,names.length);//String implements comparable  **//the method sort(java.lang.String[],int) is undefined for the type Biggest**

在不知道Biggest.sort方法签名的情况下,很难说出确切的问题是什么