Java 编译器给定的方法已定义错误--如何解决它?
当我编译代码时,我收到了这个错误。 我没有办法解决它。我应该删除一个吗?我想用这些语句来打印我的输出,如果我只保留一条,它只能打印出相反的部分 代码:Java 编译器给定的方法已定义错误--如何解决它?,java,Java,当我编译代码时,我收到了这个错误。 我没有办法解决它。我应该删除一个吗?我想用这些语句来打印我的输出,如果我只保留一条,它只能打印出相反的部分 代码: import java.util.ArrayList; class ArrayLinearListRev extends ArrayLinearList{ public ArrayList<Integer> reverse(ArrayList<Integer> alist)
import java.util.ArrayList;
class ArrayLinearListRev extends ArrayLinearList{
public ArrayList<Integer> reverse(ArrayList<Integer>
alist)
{
ArrayList<Integer> revArrayList = new
ArrayList<Integer>();
for (int i = alist.size() - 1; i >= 0; i --
) {
revArrayList.add(alist.get(i));
}
return revArrayList;
}
public void printElements(ArrayList<Integer>
alist)
{
for (int i = 0; i < alist.size(); i++) {
System.out.print(alist.get(i) + " ");
}
}
public ArrayList<Integer> leftSh(int post,
ArrayList<Integer> alist2)
{
ArrayList<Integer> LeftshifedList = new
ArrayList<Integer>(alist2);
for (int i = 1; i <= post; i++)
{
LeftshifedList.remove(0);
}
return LeftshifedList;
}
public void printElements(ArrayList<Integer> alist2)
{
for (int i = 0; i < alist2.size(); i++) {
System.out.print(alist2.get(i) + " ");
}
}
}
你不能让两种打印方法都有相同的签名。 您需要有不同的名称,最好是描述性名称 在这个类中,打印方法是相同的。 当我从您的示例中提取这些方法并添加一些样式时,很明显这些方法的作用完全相同
public void printElements(ArrayList<Integer> alist) {
for (int i = 0; i < alist.size(); i++) {
System.out.print(alist.get(i) + " ");
}
}
public void printElements(ArrayList<Integer> alist2) {
for (int i = 0; i < alist2.size(); i++) {
System.out.print(alist2.get(i) + " ");
}
}
因此,您可以删除其中一种方法。然后可以使用相同的方法打印反转数组和移位数组:
public void printElements(ArrayList<Integer> list) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
}
和使用
public static void main(String[] args) {
ArrayList<Integer> myList = new ArrayList<Integer>();
ArrayLinearListRev allr = new ArrayLinearListRev();
myList = allr.reverse(myList);
allr.printElements(myList);
myList = allr.leftSh(2, myList);
allr.printElements(myList);
}
错误是什么?有警告-什么警告?PrintElementsArrayListRevi已经在ArrayLinearListRevI中定义了printElementsArrayList我已经添加了我代码的屏幕截图这是一个错误,不是警告。之所以会出现此错误,是因为在ArrayList中有两个具有相同名称printElements和相同参数的方法。Java无法区分这两种方法。移除其中一个。