我想用Java创建一个运行时字符串名称 我尝试过在JavaScript中使用的功能,但它的打印价值如 Status_Name_0 而非打开分配给字符串 Status_Name_0
public static void GetPaymentStatusList(){
int i=0;
String Status_Name_0="Open";
String Status_ID_0="0";
String Status_Name_1="Approved";
String Status_ID_1="1";
String Status_Name_2="Denied";
String Status_ID_2="2";
for(i=0; i<3; i++){
Vars.PaymentStatusName_List.add("Status_Name_"+i);
Vars.PaymentStatusId_List.add("Status_ID_"+i);
}
}
答案 0 :(得分:1)
但它的打印值如Status_Name_0而不是Open
因为这是你添加到列表中的内容......
add("Status_Name_"+i);
获得所需内容的方式是Map<String, String>
Map<String, String> map = new HashMap<>();
map.put("Status_Name_0", "Open");
// ...
for (int i=0;i<map.size();i++) {
String open = map.get("Status_Name_"+i);
}
但是你怎么做一些课呢?
public class PaymentStatus {
int id;
String name;
public PaymentStatus(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return String.format("%s[id: %d, name: %s]",
getClass().getSimpleName(), id, name);
}
}
首选List<PaymentStatus>
优先于将整数附加到任何变量。
public static List<PaymentStatus> getPaymentStatusList() {
List<PaymentStatus> list = new ArrayList<>();
paymentStatusList.add(new PaymentStatus(0, "Open"));
paymentStatusList.add(new PaymentStatus(1, "Approved"));
paymentStatusList.add(new PaymentStatus(2, "Denied"));
return list;
}
答案 1 :(得分:0)
您实际上是将字符串“Status_name_”与“0”连接起来,这将导致“Status_name_0”,一个字符串,而不是像Status_name_0这样的变量。据我所知,你想要String_name_i(i = 0,1,2,....)的值。要使其工作,请使用String数组。
String[] string_names = { "Open", "Approved", "Denied" };
int[] string_id = { 0, 1, 2 };
:您可能不需要string_id数组,因为您可以在for循环中使用i的值。
将它们添加到列表中,如:
Vars.PaymentStatusName_List.add(string_name[i]);
答案 2 :(得分:-3)
StringBuilder param = new StringBuilder();
param.append("shopid"
+ "=" + shopDetails.getShopId() + "&" + "username" + "=" + userDetail.getUserName() + "&" + "userid" + "=" + userDetail.getUserId() + "&");
for (int i = 0; i < brandList.size(); i++) {
param.append("brandId" + "[" + i + "]" + "=" + brandList.get(i).getBrandId()
+ "&" + "shortqua" + "[" + i + "]" + "=" + shortageStockList.get(i) + "&");
}
param.append("lattude" + "=" + String.valueOf(latitude) + "&" + "longitude" + "=" + String.valueOf(longitude));