我有一点问题,我有两种方法,我必须以这种方式实现,因为它们来自一个接口。我不知道如何将getAdattagok()
方法的返回值添加到getOszlopAnnotacio()
方法的参数中。
getOszlopAnnotacio()
方法参数是Field
,但getAdattagok()
方法返回Field[]
数组。
我想得到一个类的字段的注释,但我不知道......我写了getFieldsToField()
方法,但我认为这不是我问题的最佳解决方案。
这是我的代码......
public Field[] getAdattagok(String entityOsztNev) throws ClassNotFoundException {
// Get field of the class
Class<?> c;
c = Class.forName("entities."+entityOsztNev); // entityOsztNev = entity class name
Field[] field = c.getDeclaredFields();
// for(Field f: field)
// System.out.println(f);
return field;
}
// It's not implement by interface
public void getFieldsToField(Field[] field){
for(Field f : field)
// System.out.println(getOszlopAnnotacio(f));
getOszlopAnnotacio(f);
// Maybe
// public Oszlop getFieldstoField(Field[] field){
// Oszlop oszlop = null;
// for(Field f: field)
// oszlop=getOszlopAnnotacio(f);
// return oszlop;
}
@Override
public Oszlop getOszlopAnnotacio(Field f) {
// Get annotations of the Oszlop Annotation class
Annotation[] annot = f.getDeclaredAnnotations();
Oszlop oszlop = f.getAnnotation(Oszlop.class); // Oszlop = Column
return oszlop;
}
这是我的main
代码......
public static void main(String[] args) throws ClassNotFoundException {
OlimpiaUtils o = new OlimpiaUtils();
//o.getFieldsToField(o.getAdattagok("Eredmeny"));
// It's wrong, because the void method type isn't able to...
System.out.println(o.getFieldsToField(o.getAdattagok("Eredmeny"));
}