如何获取特定class中的所有字符串?

How to get all Strings in a specific class?

我正在编写一个 Java 程序,需要获取指定 class 中的所有字符串。

其实我希望将它们保存在一个ArrayList 中。我已经试过了,但我不知道该怎么做。

例如,如果我的 class 中有以下字符串: public串鸡="wing"; public 字符串 foo = "bar";

然后我想要一个方法来找到所有这些字符串,并将它们放入 ArrayList 中!

谢谢:)

这就是我的尝试:

        for(Field f : UUIDd.class.getFields()) {
    System.out.println("trying");
    if(f.getType().isAssignableFrom(String.class)) {
        String s = f.toString();
        System.out.println(s);
    }
}

你可以这样试试

Field[] fields=UUIDd.class.getDeclaredFields(); // get all declared fields 
for(Field field:fields){
   if(field.getType().equals(String.class)){ // if it is a String field
     System.out.println(field.getName());
   }
}

您也可以获得 Filed 的值。

UUIDd uuiDd=new UUIDd();
Field[] fields= uuiDd.getClass().getDeclaredFields(); // get all declared fields
for(Field field:fields){
   if(field.getType().equals(String.class)){ // if it is a String field
      System.out.println("Variable name: "+field.getName());
      field.setAccessible(true);
      System.out.println("Variable value: "+field.get(uuiDd));
    }
}