Вы не можете записывать на флэш-память, как если бы это была RAM, и все. Flash - это ROM. Именно поэтому все ваши переменные, размещенные во флэш-памяти, должны / должны быть квалифицированы const
, что означает только чтение.
Можно сменить вспышку, и ваша часть может иметь для этой цели выделенные данные вспышки / eeprom. Но запись в такие части памяти - это не то, что компилятор сделает для вас. Вам нужно написать драйвер для флеш-программирования. Например, вы должны изучить часть программирования флэш-памяти в руководстве + примечания к приложению.
Если это - действительно внутренний класс вместо вложенного (статического) класса, существует неявный параметр конструктора, который является ссылкой на экземпляр внешнего класса. Вы не можете использовать Class.newInstance
на том этапе - необходимо получить соответствующего конструктора. Вот пример:
import java.lang.reflect.*;
class Test
{
public static void main(String[] args) throws Exception
{
Class<Outer.Inner> clazz = Outer.Inner.class;
Constructor<Outer.Inner> ctor = clazz.getConstructor(Outer.class);
Outer outer = new Outer();
Outer.Inner instance = ctor.newInstance(outer);
}
}
class Outer
{
class Inner
{
// getConstructor only returns a public constructor. If you need
// non-public ones, use getDeclaredConstructors
public Inner() {}
}
}
Это исключение будет выдано, только если clazz представляет или абстрактный класс или интерфейс. Вы уверены, что передаете Объект класса, который представляет реальный класс?