Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Java: Клнирование класса - Android

15.12.2013, 11:00. Просмотров 326. Ответов 9
Метки нет (Все метки)

Как в яве сделать подобное?
Есть МОЙ класс My()

Java
1
2
3
4
5
6
7
8
9
10
clas My {
public int asdf1;
public int asdf2;
public int asdf3;
}
 
My mmm = new My();
mmm.asdf1 = 123;
My NNN = new My();
NNN = mmm; // Копируем ССЫЛКУ!
А как скопировать ВСЕ поля класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KristopherRobin
137 / 133 / 6
Регистрация: 11.09.2011
Сообщений: 407
15.12.2013, 11:19     Java: Клнирование класса #2
напиши "конструктор копировщик"
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 12:07  [ТС]     Java: Клнирование класса #3
Цитата Сообщение от KristopherRobin Посмотреть сообщение
напиши "конструктор копировщик
А готового решения нет???
Бред! В Делфи в КАЖДЫЙ класс вставлен такой по умолчанию... (не помню с ходу название, но точно есть - пользовался)
Как equals сравнивает классы, так должен быть "заполнятель всего"...

Добавлено через 2 минуты
В классе ВСЕ поля приват, а общение только через публичные функции
Но скопировать должен весь кусок памяти с определенным классом...

Добавлено через 2 минуты
Нашел как в Делфи было: Object2.Assign(Object1)
После этого Object2 получал ВСЕ переменные из Object1, даже скытые.

Добавлено через 17 минут
Погуглил... Боюсь Вы правы!
Очень нужно было... Теперь в 4 класса прийдется писать свой клонировщик и внимательно следить за их развитием (добавил поле - надо в клонер добавить). И все поля сделать паблик.
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.12.2013, 13:08     Java: Клнирование класса #4
Java
1
2
3
4
5
6
7
8
9
10
clas My {
public int asdf1;
public int asdf2;
public int asdf3;
}
 
My mmm = new My();
mmm.asdf1 = 123;
My NNN = new My();
NNN = (My) mmm.clone();
Так не работает?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:14  [ТС]     Java: Клнирование класса #5
неа! пишет что clone - защищенный метод из класса Object
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.12.2013, 13:17     Java: Клнирование класса #6
Tester64, тогда сериализуй класс и десериализуй )))
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:19  [ТС]     Java: Клнирование класса #7
Написал свой числовой класс типа float, но со встроенными механизмами чтения из базы, вывода в строку, парсинга из строки. Куча дополнительных ограничителей - точность, разделитель дробных и тысяч... вплодь до шифрования при записи строки в базу (планируется). Вынужден переписать арифметические операции с целыми и дробными... но операция присвоения не работает на приватных полях...

Добавлено через 48 секунд
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
сериализуй класс и десериализуй
А вот здесь - поподробнее! КАК? Я еще с подобны не работал...
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.12.2013, 13:32     Java: Клнирование класса #8
Цитата Сообщение от Tester64 Посмотреть сообщение
А вот здесь - поподробнее! КАК? Я еще с подобны не работал...
По форуму (или по гуглу) поищи:
1. Java сериализация
2. Java десериализация

В Java я и сам не работал с ней ) Просто знаю, что может помочь без лишнего гемора.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:46  [ТС]     Java: Клнирование класса #9
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
Java сериализация
Возможно Вы правы... внедрение внешне простое (надо проверить), а работу с файлом можно попробовать заменить на поток данных и тогда сделать универсальный клонер...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 14:14     Java: Клнирование класса
Еще ссылки по теме:

Notiffic из класса Android
Android Базовый синтаксис Java Условия If Else Внутри класса
Android Вызов класса
Rx Java Android
Rx Java Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
15.12.2013, 14:14     Java: Клнирование класса #10
Не надо ничего сериализовать, вы что господа.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Test {
 
    public static void main(String[] args)  {
        MyClass AAA = new MyClass();
        AAA.asdf1 = 111; AAA.asdf2 = 222; AAA.asdf3 = 333;
        MyClass BBB = null;
        try {
             BBB = (MyClass) AAA.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        
        System.out.println("BBB.asdf1 = " + BBB.asdf1);
        System.out.println("BBB.asdf2 = " + BBB.asdf2);
        System.out.println("BBB.asdf3 = " + BBB.asdf2);
        
    }
 
}
 
class MyClass implements Cloneable{
    public int asdf1;
    public int asdf2;
    public int asdf3;
    
    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
Yandex
Объявления
15.12.2013, 14:14     Java: Клнирование класса
Ответ Создать тему
Опции темы

Текущее время: 17:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru