Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个类访问要在方法中使用的数组列表_Java_Object_Arraylist_Methods - Fatal编程技术网

Java 从另一个类访问要在方法中使用的数组列表

Java 从另一个类访问要在方法中使用的数组列表,java,object,arraylist,methods,Java,Object,Arraylist,Methods,我正在尝试从另一个类获取对象的arraylist,以显示它并对其进行修改(在arraylist中删除对象),因此也必须修改原始arraylist…我尝试了下面的方法,但没有成功 阿曲布他类 private int number; //user imput 方法 public String DisplayObj() { String result; FormularioPedido form = new FormularioPedido(); //instance of the

我正在尝试从另一个类获取对象的arraylist,以显示它并对其进行修改(在arraylist中删除对象),因此也必须修改原始arraylist…我尝试了下面的方法,但没有成功

阿曲布他类

private int number; //user imput
方法

public String DisplayObj() {
    String result;
    FormularioPedido form = new FormularioPedido(); //instance of the other class so I can access the arrayList
    ArrayList<Pedido> lista = form.getListaPedido();

    number -= 1;
    Pedido pedido = lista.get(number);
    result = pedido.getTamanio() + pedido.getIngredientesToString()
            + pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
    return result;
}

public void deleteObj() {

    FormularioPedido form = new FormularioPedido();
    List<Pedido> lista = form.getListaPedido();

    number -= 1;
    lista.remove(number);

}
公共字符串DisplayObj(){
字符串结果;
FormularioPedido form=new FormularioPedido();//其他类的实例,以便访问arrayList
ArrayList lista=form.getListaPedido();
数字-=1;
Pedido Pedido=lista.get(数字);
结果=pedido.getTamanio()+pedido.GetingRedientToString()
+pedido.getBebida()+pedido.getExtra()+pedido.getCelular();
返回结果;
}
public void deleteObj(){
FormularioPedido form=新的FormularioPedido();
List lista=form.getListaPedido();
数字-=1;
删除(编号);
}

您需要将lista存储为类属性。 这样,您显示的列表将与您从中删除的列表相同

目前是两个单独的列表,每次调用display方法时都会重新创建一个

private int number; //user imput
private FormularioPedido form  = new FormularioPedido();

public String DisplayObj() {
    String result;
    ArrayList<Pedido> lista = form.getListaPedido();

    number -= 1;
    Pedido pedido = lista.get(number);
    result = pedido.getTamanio() + pedido.getIngredientesToString()
            + pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
    return result;
}

public void deleteObj() {

    List<Pedido> lista = form.getListaPedido();

    number -= 1;
    lista.remove(number);
}
私有整数//用户输入
私有FormularioPedido form=新FormularioPedido();
公共字符串DisplayObj(){
字符串结果;
ArrayList lista=form.getListaPedido();
数字-=1;
Pedido Pedido=lista.get(数字);
结果=pedido.getTamanio()+pedido.GetingRedientToString()
+pedido.getBebida()+pedido.getExtra()+pedido.getCelular();
返回结果;
}
public void deleteObj(){
List lista=form.getListaPedido();
数字-=1;
删除(编号);
}

当然,在执行“删除”或“显示为”之前,您需要检查列表大小以避免出现异常。

每次编写
new FormularioPedido()
,您都会创建一个新列表(在调用
表单时返回。getListaPedido()
)。你应该多考虑一下你的课堂设计。例如,列表可以是一个类属性,您可以在同一个列表实例上操作。

您正在重新创建
new FormularioPedido()每次。是否尝试将其设置为全局(类)变量?