【问题标题】:How to get all Strings in a specific class?如何获取特定类中的所有字符串?
【发布时间】:2015-08-11 08:39:48
【问题描述】:

我正在编写Java程序,并且需要获取指定类中的所有字符串。

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

例如,如果我的班级中有以下字符串: 公共字符串鸡=“翅膀”; 公共字符串 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);
    }
}

【问题讨论】:

  • 请发布您尝试过的内容...
  • 向我们展示您的尝试。
  • 首先显示你的代码
  • 如果您已经尝试过某事,请展示您尝试过的内容并展示您遇到的问题。
  • “指定类中的所有字符串”是什么意思?你的问题不清楚...

标签: java string class get


【解决方案1】:

你可以试试这个方法。

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

【讨论】:

  • 你知道我如何将这个字段转换为字符串,以便我可以得到它的值吗?
  • @Freakey 转换是什么意思?您的意思是将Field 转换为String?你想取变量的值吗?
  • 是的,这就是我想要的^^
  • @Freakey 你可以在我的回答的最后部分得到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多