В "живом коде" будет использоваться примерно так:
Свернуть ↑
public class TestClass {
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.SOURCE)
@interface link {
}
public void doWork(@link int str) {
System.out.println(str);
}
public static void main(String[] args) {
TestClass test = new TestClass ();
test.doWork("link1");
test.doWork("link2");
test.doWork("link3");
test.doWork("link1");
}
public static class LinkFactory {
// linkMap загружается динамически из файла link1 = 100; link2 = 200; link3 = 300
private Map<String, Integer> linkMap = new HashMap<>();
public int getValueFor(String link) {
return linkMap.get(link);
}
}
}
Code: Java
Код:
В консоли:
100
200
300
100
Свернуть ↑Развернуть ↓
На стадии компиляции все строковые значения будут заменены числовыми из LinkFactory. За счет этого, появится экономия памяти + отсутствие постоянных вызовов к LinkFactory. Применяться будет в конвертированных PTS->Java скриптах.