Я пытаюсь сохранить данные в своей деятельности, а затем восстановить их.
Я сохраняю данные в onSaveInstanceState ()
, а затем пытаюсь восстановить данные в onRestoreInstanceState ()
.
Я устанавливаю точку останова, метод onSaveInstanceState ()
звонят. Но onRestoreInstanceState ()
или onCreate ()
никогда этого не делали.
Вот мои шаги:
Activity
. onSaveInstanceState ()
. Activity
. В настоящее время вызывается только onRestart ()
. Но не onRestoreInstanceState ()
или onCreate ()
.
void AppMain () {// Заполнить ...
java.lang.RuntimeException: java.lang.IllegalAccessException:
Class concurrent.Link$ can not access a member of class concurrent.Link
with modifiers "private volatile"
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>(AtomicReferenceFieldUpdater.java:189)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdater.java:65)
at concurrent.Link$.<init>(Link.scala:106)
...
Таким образом, во время выполнения сопутствующий объект является concurrent.Link $
not concurrent.Link
и другой класс не может получить доступ к закрытому члену другого.
НО, если я javap -p concurrent.Link
Я получаю:
Compiled from "Link.scala"
public final class concurrent.Link implements concurrent.Node,scala.ScalaObject,scala.Product,java.io.Serializable{
private final java.lang.Object value;
private volatile com.atlassian.util.scala.concurrent.Node node;
public static final boolean cas(com.atlassian.util.scala.concurrent.Link, com.atlassian.util.scala.concurrent.Node, com.atlassian.util.scala.concurrent.Node);
public static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater updater();
Итак, у меня есть все, кроме статического экземпляра AtomicReferenceFieldUpdater
, объявленного в моем классе Link
.
] Вопрос в том, как мне получить экземпляр AtomicReferenceFieldUpdater
в Scala, который указывает на изменчивую переменную?
Единственный способ, который я нашел до сих пор, - это вернуться к Java (реализовать AbstractLink со следующим полем узла и статическим AtomicReferenceFieldUpdater
) и наследовать от того, что некрасиво.