我最初的想法是创建一个格式生成器。比如写下一些文本,然后写下一些用大括号括起来的变量,然后写下那些具有实际值的变量,我想让我的系统知道哪些类可以用于格式化以及系统可以使用它的哪些属性。
让我们假设,在此图像中,始终检索 id 为 1 的对象,并且 id 始终存在(忘记绘制它)
我想要做的是让一个或多个带有注释的类,然后识别哪些类具有该注释,并让我知道它们是哪些类。在上面的示例中,那些可用的类应该在下拉列表中
/*
* @Format
*/
public class Pizza {
public $hasCheese;
/*
* @FormatField("pizzaPrice")
*/
public $price;
假设我有一堆类,并且唯一一个有我的注释Format,并且它的一些属性有注释,FormatField那么我希望有一种方法让我知道类似的内容"It looks like the class Pizza can be used in a Format",然后哪些属性可用于格式化,哪些属性然后,以FormatField某种方式通过别名检索该属性的值pizzaPrice
我写了这种伪代码,希望能更好地说明我想学的东西
var availableClasses = getClassesThatHaveFormatAnnotation();
foreach (availableClasses as availableClass) {
var properties = availableClass.findFormatFields()
print("Looks like the " + availableClass->name + " class has the Format annotation")
foreach (properties as property) {
print("Field available: " + property.name)
print("Value: " + property.value)
}
}
var pizza = findPizzaById(1);
有了这个披萨,我希望能够通过其别名仅访问上面有 @FormatField 的属性,例如 {{pizzaPrice}} 但 {{hasCheese}} 不应该工作,因为它没有 @FormatField 注释;
森林海