【发布时间】:2014-03-13 23:53:50
【问题描述】:
如果我在问这个问题时犯了任何错误,我提前道歉。我是 stackoverflow 和 java 的新手。
我的问题是我希望能够将普通的双精度数组转换为 arraylist,我需要明智地操作这个 arraylist 元素以将值从 x 更改为 -x(使用接口)
我试图首先使用 for 循环元素将数组双精度转换为数组列表(我认为我应该首先工作)但 .add 似乎不起作用,这是似乎出现的解决方案当我研究它时。目前它说“无法实例化类型 Num”我尝试删除抽象仍然没有好处。
我这样做完全错了吗?提前感谢您的帮助。
这是我的代码。
public interface Num {
public void neg(); // negation
public void sqrt(); // square root
public String asString(); // number represented as a string
}
public class NumDouble implements Num {
Double d;
public NumDouble(Double d) {
this.d = d;
}
@Override
public void neg() {
d = -d;
}
@Override
public void sqrt() {
d = Math.sqrt(d);
}
@Override
public String asString() {
return d.toString();
}
}
这是我一直在尝试的代码
import java.util.ArrayList;
import java.util.Arrays;
public abstract class NumList implements Num {
ArrayList<Num> nums = new ArrayList<Num>();
double[] doubles = {2.3, 2.2, 2.4};
public void neg() {
for (int i = 0; i < doubles.length; i++) {
double value = doubles[i];
nums.add(new Num(value)); <------this is highlighting as an error
}
return;
}
public void sqrt() {
}
}
【问题讨论】:
-
应该是
new NumDouble(value)-- 你不能实例化接口 -
他实际上可以创建一个接口的匿名实例。
-
非常感谢您的帮助,一个问题解决了哈哈!