如何将递增的数字字符串作为id?

时间:2017-12-21 09:01:18

标签: java string auto-increment

您好我一直在尝试找到一种方法,在一个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;
	}
	
   }

3 个答案:

答案 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);
    }

}