将对象添加到 Arraylist 并在方法外部使用它
Add objects to Arraylist and use it outside method
我有一个问题。我无法解决它,我需要一些帮助。我有一个对象的 Arraylist 然后我有一个方法可以创建对象并将其添加到 Arraylist 但我想要另一种方法可以打印 Arraylist 但每次我尝试 Arraylist 都是空的所以这是我的代码:
public class Packages{
ArrayList<Pack> myList = new ArrayList<Pack>();
Pack obj;
public double addPackage(int type, double num){
if(type==1)
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
else
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
myList.add(obj);
return total;
}
public int listSize(){
return myList.size();
}
}
每次我调用 listSize() 方法时它 returns 0,看起来当 addPackage 方法完成时它会删除我添加到 Arraylist 的对象。
注意:我的 addPackage 方法将 return 加倍总数,但同时将我创建的对象添加到数组列表中。我需要一些帮助。
我试过你的代码,几乎是正确的。我再次发布我使用过的有效的 classes:
public class Package {
List<Pack> myList = new ArrayList<Pack>();
Pack obj;
double total = 0;
public double addPackage(int type, double num) {
if (type == 1) {
obj = new Pack(type, num);
total = obj.calculateTotal();
} else {
obj = new Pack(type, num);
total = obj.calculateTotal();
}
myList.add(obj);
return total;
}
public int listSize() {
return myList.size();
}
}
现在 class 包是:
public class Pack {
int type;
double value;
public Pack(int type, double value) {
this.type = type;
this.value = value;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public double calculateTotal() {
return type*value;
}
}
并且我在这段代码中进行了验证:
public static void main(String[] args) {
Package pkg = new Package();
pkg.addPackage(10,10);
pkg.addPackage(10,20);
System.out.println(pkg.listSize());
}
正如预期的那样 returns 2
。所有这些 class 可能与您所拥有的不完全相同,但它会让您了解您缺少什么。
我有一个问题。我无法解决它,我需要一些帮助。我有一个对象的 Arraylist 然后我有一个方法可以创建对象并将其添加到 Arraylist 但我想要另一种方法可以打印 Arraylist 但每次我尝试 Arraylist 都是空的所以这是我的代码:
public class Packages{
ArrayList<Pack> myList = new ArrayList<Pack>();
Pack obj;
public double addPackage(int type, double num){
if(type==1)
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
else
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
myList.add(obj);
return total;
}
public int listSize(){
return myList.size();
}
}
每次我调用 listSize() 方法时它 returns 0,看起来当 addPackage 方法完成时它会删除我添加到 Arraylist 的对象。 注意:我的 addPackage 方法将 return 加倍总数,但同时将我创建的对象添加到数组列表中。我需要一些帮助。
我试过你的代码,几乎是正确的。我再次发布我使用过的有效的 classes:
public class Package {
List<Pack> myList = new ArrayList<Pack>();
Pack obj;
double total = 0;
public double addPackage(int type, double num) {
if (type == 1) {
obj = new Pack(type, num);
total = obj.calculateTotal();
} else {
obj = new Pack(type, num);
total = obj.calculateTotal();
}
myList.add(obj);
return total;
}
public int listSize() {
return myList.size();
}
}
现在 class 包是:
public class Pack {
int type;
double value;
public Pack(int type, double value) {
this.type = type;
this.value = value;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public double calculateTotal() {
return type*value;
}
}
并且我在这段代码中进行了验证:
public static void main(String[] args) {
Package pkg = new Package();
pkg.addPackage(10,10);
pkg.addPackage(10,20);
System.out.println(pkg.listSize());
}
正如预期的那样 returns 2
。所有这些 class 可能与您所拥有的不完全相同,但它会让您了解您缺少什么。