public class Solution {
public static class A {
protected String nameA = "A";
public A(String nameA) {
this.nameA += nameA;
}
}
public class B extends A implements Serializable {
private String nameB;
public B(String nameA, String nameB) {
super(nameA);
this.nameA += nameA;
this.nameB = nameB;
}
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(arrayOutputStream);
Solution solution = new Solution();
B b = solution.new B("B2", "C33");
System.out.println("nameA: " + b.nameA + ", nameB: " + b.nameB);
oos.writeObject(b);
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(arrayOutputStream.toByteArray());
ObjectInputStream ois = new ObjectInputStream(arrayInputStream);
B b1 = (B) ois.readObject();
System.out.println("nameA: " + b1.nameA + ", nameB: " + b1.nameB);
}
}
Я так понял, что мы пишем "B b = solution.new B("B2", "C33");" из за того, что класс В не статический.
Я сделал просто класс В сделал статик и B b = new B("B2", "C33"); и все тоже ОК!!!
Если класс не статик то среда ругается что в статическом методе мы хотим создать экземпляр класса не статического.
Хотя Solution тоже не статический, но в статическом методе можно создать его экземпляр.
Это из за того что Solution не вложенный класс и это его точка входа Маин а класс В вложенный? Или я что то путаю?
И объясните пожалуйста про "B b = solution.new B()" вопрос в solution.new!!!!!
Дмитрий Орлов
26 уровень
Подскажите пожалуйста если есть время, в подробностях что тут и как "solution.new B" первый раз это вижу.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий Орлов
7 октября 2021, 07:21
Благодарю! Теперь вопросов нет.
0
Ksenia Volkova Java Developer в DXC Master
6 октября 2021, 12:50
Эту статью читал?
+1