通过在java中从字符串数组定义对象名来创建对象

通过在java中从字符串数组定义对象名来创建对象,java,Java,通常,我们将对象创建为: String s1 = "a"; String s2 = "b"; String s3 = "c"; String s4 = "d"; ... 我尝试使用两个字符串数组创建这些字符串: String[] names = { "s1", "s2", "s3", "s4" }; String[] vals = { "a", "b", "c", "d" }; int len = names.length; for(int i = 0; i < len; i++)

通常,我们将对象创建为:

String s1 = "a";
String s2 = "b";
String s3 = "c";
String s4 = "d";
...
我尝试使用两个字符串数组创建这些字符串:

String[] names = { "s1", "s2", "s3", "s4" };
String[] vals  = { "a", "b", "c", "d" };

int len = names.length;

for(int i = 0; i < len; i++){
   String names[i] = vals[i];
}
String[]name={“s1”、“s2”、“s3”、“s4”};
字符串[]VAL={“a”、“b”、“c”、“d”};
int len=names.length;
对于(int i=0;i

但它不起作用。我能做什么?

您的值的名称及其内容是不同的。 在您的示例中,您犯了一个错误:

String[] names = { "s1", "s2", "s3", "s4" };
String[] vals  = { "a", "b", "c", "d" };

int len = names.length;

for(int i = 0; i < len; i++){
//name[i] already exists so you can remove String
   names[i] = vals[i];
}
String[]name={“s1”、“s2”、“s3”、“s4”};
字符串[]VAL={“a”、“b”、“c”、“d”};
int len=names.length;
对于(int i=0;i
在您的示例中没有s1、s2等字符串,只有names[]是字符串数组。 你想干什么

在我看来,您正在尝试使用键/值类型的od数据。所以你需要的是一张地图

例如:

Map<String, String> namesAndValues = new HashMap<String,String>();
for(int i = 0; i < numberOfNamesYouNeedToPut; i++){
// supposing vals's size is at least numberOfNamesYouNeedToPut
    namesAndValues.put("s" + i+1, vals[i]);
}
Map namesAndValues=new HashMap();
对于(int i=0;i
当您执行此操作时

for(int i = 0; i < len; i++){
   names[i] = vals[i];
}

这将把值复制到一个新数组。

正常方式有什么问题?你期望实现什么?你到底想要实现什么??如何将数据存储在键值对中?@talex当然,你是对的,但是如果我必须设置一个大对象,我可以声明一个方法。这是一个示例,我必须设置40~50个字符串。所以,我试着用这种方式设置。@TarıkİNCE Ok,40-50个变量有什么问题?您可以为每个字段创建一个类,并使用它作为参数传递给方法;我编辑添加地图用例,它看起来像它做的把戏吗?谢谢,我问我们如何用一个动态名称声明一个对象(这里的字符串)。你期望如何使用它。如果您需要存储dinamic名称-值对,可以查看映射接口(例如HashMap)?
String newArray[] = new String[len];
System.arraycopy(vals,0,newArray,0,len);