我经常发现自己在编写这样的代码:
throwExceptionWhenEmpty(fileType, "fileType");
throwExceptionWhenEmpty(channel, "channel");
throwExceptionWhenEmpty(url, "url");
throwExceptionWhenEmpty
方法执行以下操作:private void throwExceptionWhenEmpty(final String var, final String varName) {
if (var == null || var.isEmpty()) {
throw new RuntimeException("Parameter " + varName + " may not be null or empty.");
}
}
我想避免这种明显的冗余,将变量名作为字符串传递。 java编译器是否可以为我在字符串中插入变量名?
如果我能写这样的话,我会很高兴的:
throwExceptionWhenEmpty(fileType, nameOf(fileType));
最佳答案
不,Java在开始支持使字段(和方法)成为编程语言的第一等公民的闭包之前,不能这样做。
有关建议之一的概述,请参见http://docs.google.com/Doc?id=ddhp95vd_6hg3qhc,在其中您可以使用#field
语法执行所需的操作。
关于java - 如何使Java编译器在字符串中插入变量名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2371559/