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

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

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

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

15.12.2013, 11:00. Просмотров 329. Ответов 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; // Копируем ССЫЛКУ!
А как скопировать ВСЕ поля класса?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 11:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Java: Клнирование класса (Программирование Android):

Создание экземпляра класса C++ в Java - Программирование Android
Здравствуйте! Подскажите, возможно ли создать экземпляр класса C++ в Java? Если да, то как? Если можно то пример с кодом C++ класса и...

Базовый синтаксис Java Условия If Else Внутри класса - Программирование Android
Всем привет. Я только начинаю кодить на Java до этого имел небольшой опыт JS и AutoIt. Не могу разобраться с синтаксисом, не могу...

Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. - Программирование Android
Есть 3 класса: MainActivity, WorkDB и WorkFiles. Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Файл...

Как изменить Textview из другого класса (класса адаптера RecyclerView) - Программирование Android
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует cardwiew BasketAdapter. как мне изменить TextView allPrice из...

Ошибка java.lang.ClassCastException: com.organizer.ToDoItemDescr cannot be cast to java.util.Map - Программирование Android
Ошибка появляется когда пытаюсь вытянуть из кастомного адаптера запись ListView. Весь лог ошибки такой: FATAL EXCEPTION: main Process:...

Не создаются BuildConfig.java R.java - Программирование Android
BuildConfig.java , R.java Не создаются в папке /gen при создании проекта в eclipse. Переустанавливал программу, ничего не помогает. Что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KristopherRobin
137 / 133 / 6
Регистрация: 11.09.2011
Сообщений: 407
15.12.2013, 11:19 #2
напиши "конструктор копировщик"
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 12:07  [ТС] #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 #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
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:14  [ТС] #5
неа! пишет что clone - защищенный метод из класса Object
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.12.2013, 13:17 #6
Tester64, тогда сериализуй класс и десериализуй )))
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:19  [ТС] #7
Написал свой числовой класс типа float, но со встроенными механизмами чтения из базы, вывода в строку, парсинга из строки. Куча дополнительных ограничителей - точность, разделитель дробных и тысяч... вплодь до шифрования при записи строки в базу (планируется). Вынужден переписать арифметические операции с целыми и дробными... но операция присвоения не работает на приватных полях...

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

В Java я и сам не работал с ней ) Просто знаю, что может помочь без лишнего гемора.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:46  [ТС] #9
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
Java сериализация
Возможно Вы правы... внедрение внешне простое (надо проверить), а работу с файлом можно попробовать заменить на поток данных и тогда сделать универсальный клонер...
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
15.12.2013, 14:14 #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();
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 14:14
Привет! Вот еще темы с ответами:

Создание тестового класса (метода) для готового класса в Java - Java SE
Может я чего-то не понимаю. Так вот.Припустим я создал готовый класс в Java,который выполняет какие-то действия.но его нужно...

Необходимо создать класс Java, который представляет карту учебного класса, позволяет определить место для студента, отображает карту класса и ищет зан - Java SE
Доброго времени суток! Нашёл на сайте тему с такой задачкой, но там никто не ответил :...

C C# на JAVA. Реализация класса - Java SE
Доброго времени суток, скажите почему не работают методы IShow и ICount в классе IArray, подчеркивает их?. Код: static class...

Смена класса на Java - Java
Доброго вечера. Есть следующая проблема: Написано два класса, один класс добавляет в тхт файл(аля база данных) записи из Jtable, другой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.12.2013, 14:14
Ответ Создать тему
Опции темы

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