Java-在多个数组上循环(字符串与“数组类型”不匹配)

Java-在多个数组上循环(字符串与“数组类型”不匹配),java,arrays,variables,Java,Arrays,Variables,我得到了五个数组(E1、E2、E3、E4和E5),我像上面一样定义它们。在这些数组中有文件名。我想逐个循环每个E*数组,并对该文件进行处理 static String[] E1 = {"filex1", "file333y", "readme"}; 是我试图在它们上面循环,但是当我在另一个循环中用 String eb = "E"+i; 它给了我类似“eb是一个字符串,但这里需要数组类型”的东西 for(int i=0;i

我得到了五个数组(E1、E2、E3、E4和E5),我像上面一样定义它们。在这些数组中有文件名。我想逐个循环每个E*数组,并对该文件进行处理

static String[] E1 = {"filex1", "file333y", "readme"};
是我试图在它们上面循环,但是当我在另一个循环中用

String eb = "E"+i;
它给了我类似“eb是一个字符串,但这里需要数组类型”的东西

for(int i=0;i
通过从需要使用的字符串片段组合变量名称来访问Java中的变量。此外,它仅适用于成员变量,不适用于自动变量。

创建一个多维数组:

for( int i = 0; i < ENum - 1; i++)
{
  String eb = "E"+i;
  for( int j = 0; j < eb.length - 1; j++)
  {
    String tempFile = Path4Files+eb[j]+".txt";
  }
}

正如@Andres在他的回答中所说的,唯一的方法是反射,尽管只针对成员变量

一种解决方案是将数组添加到另一个数组中,然后在其上循环

static String[][] E = {{"filex1", "file333y", "readme"}, {...}, {...}, {...}, {...}};

你可以这样做:

static String[] E1 = {"filex1", "file333y", "readme"};
//...
static String[][] es = {E1, E...};
导入java.util.array;
导入java.util.List;
公营鸡蛋{
静态字符串[]E1={“filex1”、“file333y”、“readme”};
静态字符串[]E2={“aaa”、“bbb”、“ccc”};
静态字符串[]E3={“ddd”,“eee”,“fff”};
静态字符串[]E4={“ggg”,“hhh”,“iii”};
静态字符串[]E5={“jjj”、“kkk”、“lll”};
公共静态void main(字符串[]args){
List myList=Arrays.asList(E1、E2、E3、E4、E5);
for(字符串[]myArray:myList){
for(字符串myString:myArray){
System.out.println(myString);
}
}
}        
}

您的意思是使用E1[j]?什么是
ENum
?为什么不呢“您是否将每个表存储在
列表中
并遍历此列表?@jeanr ENum定义了我要查看的数组数量。因为那是我不知道的解决方案。。但它现在对我有效这个问题与反射或变量访问无关。好的。如果要获取一个java成员变量的名称,必须包含两个字符串,那么如何访问该变量呢?即使你在第二个帐户中重复了它:问题仍然不是反射。是的,多维数组是另一种方法。请暂时忘掉那些“反思”的废话——那是不必要的,而且有点超前。
static String[] E1 = {"filex1", "file333y", "readme"};
//...
static String[][] es = {E1, E...};
String[] E1 = {"filex1", "file333y", "readme"};
String[] E2 = {"filex21"};
for (String[] files : new String[][] {E1, E2})
{
  for(String fileName : files)
  {
    String tempFile = Path4Files + e[j] + ".txt";
  }
}
import java.util.Arrays;
import java.util.List;

public class Eggs {
    static String[] E1 = {"filex1", "file333y", "readme"};
    static String[] E2 = {"aaa", "bbb", "ccc"};
    static String[] E3 = {"ddd", "eee", "fff"};
    static String[] E4 = {"ggg", "hhh", "iii"};
    static String[] E5 = {"jjj", "kkk", "lll"};
    public static void main(String[] args){
        List<String[]> myList = Arrays.asList(E1,E2,E3,E4,E5);
        for(String[] myArray: myList){
            for(String myString: myArray){
                System.out.println(myString);
            }
        }
    }        
}