У меня есть эта модель:
public class Base_RegisterPlack {
private String RegisterPlackTypeValue;
public void setRegisterPlackTypeValue(String registerPlackTypeValue) {
RegisterPlackTypeValue = registerPlackTypeValue;
}
}
в этом методе я передаю этот объект:
gridView2.setAdapter(GridHelper.getRegisterPlackAdapter(getContext(), getCookie(),
result_getClsBase_Info.getBase_RegisterPlack()), Base_RegisterPlack.class);
тело метода setAdapter
:
public void setAdapter (DataGridAdapter adapter, Class cls) {
this.baseClass = cls;
super.setAdapter(adapter);
setGridAdapter(adapter);
}
Теперь я хочу вызвать метод set setRegisterPlackTypeValue
, поэтому я пишу это отражение:
try {
Field field = baseClass.getDeclaredField("RegisterPlackTypeValue");
field.setAccessible(true);
field.set(baseClass,"test");
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Я получил эту ошибку:
java.lang.IllegalArgumentException: Expected receiver of type com.module.contracts.Base_RegisterPlack, but got java.lang.Class<com.module.contracts.Base_RegisterPlack>
Как я могу вызвать метод set и снова преобразовать этоbaseClass
до Base_RegisterPlack
после установки значения для него?