我正在尝试在一个ArrayList中创建两种不同类型的数组。相应地设置构造函数(我认为),但是当它实例化它们时,我收到一条错误消息“arr无法解析”。我慢慢地,但肯定绕过弯道。如何让ArrayList接受带有双精度的简单数组? (它还必须接受其他类型,因此它不仅仅是更改ArrayList本身的问题。)这是构造函数和代码的代码。 main ArrayList:
class NumList implements Num
{
private ArrayList<Num> n1;
public NumList( NumDouble[] doubleArray )
{
n1 = new ArrayList<Num>();
for( NumDouble d : doubleArray )
n1.add( d );
}
public NumList(NumFloat[] floatArray )
{
n1 = new ArrayList<Num>();
for( NumFloat d : floatArray )
n1.add( d );
}
// methods of Num interface
}
我的测试类看起来像这样 -
import java.util.ArrayList;
public class Demo extends NumList {
public Demo(NumDouble[] doubleArray) {
//suggested automatically to add super here
super(doubleArray);
double[] arr = {(1.1), (2.2), (3.3), (4.4)};
ArrayList<Num> n1 = new ArrayList<Num>(arr);
}
public static void main (String [] args){
arr.sqrt();
System.out.println("The numbers sq are "+ arr [0]);
}
}
NumList类只有三种方法,包括sort。我尝试过通配符以及
这可能非常简单......任何帮助都会受到赞赏。
答案 0 :(得分:2)
你的ArrayList包含Num类型的对象,但你试图在其中插入普通的ol'双打
pyi_rth_pkgres returned -1
double[] arr = {(1.1), (2.2), (3.3), (4.4)};
ArrayList<Num> n1 = new ArrayList<Num>(arr);
不会从double
继承,因此无法放入Num
。此外,没有ArrayList构造函数将数组作为参数,您必须将数组转换为具有ArrayList<Num>
的集合。你必须做这样的事情
Arrays.asList(array)