您好我一直在尝试找到一种方法,在一个String类中创建一个ID,并且具有对所创建的类的每个实例进行icrement的数值。我找到了向导,告诉我如何使用整数,但我想使用字符串。我不知道我将如何做到这一点。
import java.util.ArrayList;
public class Order {
private String orderID;
Order(String orderID) {
setOrderID(orderID);
}
public void setOrderID(String orderID) {
this.orderID=orderID;
}
}
答案 0 :(得分:0)
对象的每个实例都独立于其他实例。因此,Order对象无法神奇地拥有一个比您之前创建的实例高一个数值的数值,而无需您自己分配。如果您有一个带递增索引的循环,您可以连续将它们插入到列表中。但是,要使用String,必须首先将索引转换为String。我就是这样做的:
输出:
OrderID: 0
OrderID: 1
OrderID: 2
OrderID: 3
OrderID: 4
代码:
import java.util.ArrayList;
public class F {
public static void main(String[] args) {
ArrayList<Order> orders = new ArrayList<Order>();
Order order;
String orderID;
for (int i = 0; i < 10; i++) {
orderID = Integer.toString(i); // Convert the index to a String
order = new Order(orderID); // Instantiate a new Order object with the String
orders.add(order); // Add the String to the list
}
// Loop through the list
for (Order o : orders) {
System.out.println(o.getOrderID());
}
}
}
class Order {
private String orderID;
Order(String orderID) {
setOrderID(orderID);
}
public void setOrderID(String orderID) {
this.orderID=orderID;
}
// Getter method
public String getOrderID() {
return this.orderID;
}
}
答案 1 :(得分:0)
据我了解,您需要使用静态int变量。
答案 2 :(得分:0)
如果您真的想要使用String,可以在类中添加静态计数器并将值赋值为String:
public class Order {
private static final int orderCount = 0;
private final String orderID;
Order() {
this.orderCount++;
this.orderID = String.valueOf(this.orderCount);
}
}