java 怎么实现c语言里的双井号功能,就是连接字符##

我安卓程序里比如有很多edittext, 但是他们的id是有个规律的。我现在要这样写
findViewById(R.id.keyword0);
findViewById(R.id.keyword1);
findViewById(R.id.keyword2);
findViewById(R.id.keyword3);
findViewById(R.id.keyword4);
findViewById(R.id.keyword5);
.
.
.
要写很多,如果有类似c语言的##,
我就可以在一个循环里写上findViewById(R.id.keyword##i);
...全文
412 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zs808 2017-03-17
  • 打赏
  • 举报
回复
引用 6 楼 u011039332 的回复:
.. 那似乎是宏定义中使用"##"连接字符串吧 #4楼
  • 打赏
  • 举报
回复
.. 那似乎是宏定义中使用"##"连接字符串吧 #4楼
rocky57p 2017-03-16
  • 打赏
  • 举报
回复
System.out.println("学习中");
zs808 2017-03-13
  • 打赏
  • 举报
回复
用反射,可能会牺牲一些性能,但是是比较方便的做法。 示例代码:
/**
 * Hello world!
 *
 */
public class App {
	public static class R{
		public static class id{
			public static final String keyword0 = "0";
			public static final String keyword1 = "1";
			public static final String keyword2 = "2";
			public static final String keyword3 = "3";
			public static final String keyword4 = "4";
			public static final String keyword5 = "5";
			public static final String keyword6 = "6";
			public static final String keyword7 = "7";
			public static final String keyword8 = "8";
			public static final String keyword9 = "9";
			public static final String keyword10 = "10";
		}
	}
	
	public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {
		for (int i = 0; i <= 10; i++) {
			Object val = R.id.class.getDeclaredField("keyword" + i).get(null);
			System.out.println(val);
		}
	}
}
cloud丶mist 2017-03-13
  • 打赏
  • 举报
回复
不知道,没试过
曾阿牛_ 2017-03-10
  • 打赏
  • 举报
回复
理太偏 2017-03-09
  • 打赏
  • 举报
回复
findViewById(R.id.keyword+""+i);

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧