Импортирует ли несериализуемый класс в класс, который реализует Сериализуемые разрывы Сериализация? - PullRequest
0 голосов
/ 05 марта 2019

Импортирует ли несериализуемый класс в класс, реализующий Сериализуемые разрывы Сериализация?

import com.xyz.NotSerializableClass;

public class SerializableClass implements Serialiazble{

   public SerializableClass(NotSerializableClass notSerialiazble){
       //do something to notSerialiazble
  }
}

Могу ли я по-прежнему использовать экземпляры SerializableClass для передачи в качестве дополнительного в намерение, например?

1 Ответ

0 голосов
/ 05 марта 2019

Это зависит от того, что именно вы делаете с NotSerializableClass.Пока SerializableClass не сохраняет ссылку на NotSerializableClass, с вами все будет в порядке, но есть много тонких способов, которыми можно сохранить ссылку, например:

  • Обращение к переменной notSerialiazble изнутри лямбда-выражения, определенного в конструкторе
  • Обращение к переменной notSerialiazble из анонимного внутреннего класса, созданного в конструкторе

И, конечно, несколько менее изощренных способов:

  • Добавление NotSerializableClass в качестве поля
  • Добавление NotSerializableClass в качестве поля внутри внутреннего класса SerializableClass

И возможноеще несколько, это только с моей головы

...