Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
1

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

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

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

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

Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB.
Есть 3 класса: MainActivity, WorkDB и WorkFiles. Хочу из класса WorkFiles...

Как изменить Textview из другого класса (класса адаптера RecyclerView)
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует...

Ошибка java.lang.ClassCastException: com.organizer.ToDoItemDescr cannot be cast to java.util.Map
Ошибка появляется когда пытаюсь вытянуть из кастомного адаптера запись...

9
KristopherRobin
143 / 139 / 11
Регистрация: 11.09.2011
Сообщений: 409
15.12.2013, 11:19 2
напиши "конструктор копировщик"
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 12:07  [ТС] 3
Цитата Сообщение от KristopherRobin Посмотреть сообщение
напиши "конструктор копировщик
А готового решения нет???
Бред! В Делфи в КАЖДЫЙ класс вставлен такой по умолчанию... (не помню с ходу название, но точно есть - пользовался)
Как equals сравнивает классы, так должен быть "заполнятель всего"...

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

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

Добавлено через 17 минут
Погуглил... Боюсь Вы правы!
Очень нужно было... Теперь в 4 класса прийдется писать свой клонировщик и внимательно следить за их развитием (добавил поле - надо в клонер добавить). И все поля сделать паблик.
0
646kapeh064
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
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();
Так не работает?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:14  [ТС] 5
неа! пишет что clone - защищенный метод из класса Object
0
646kapeh064
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
15.12.2013, 13:17 6
Tester64, тогда сериализуй класс и десериализуй )))
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
15.12.2013, 13:19  [ТС] 7
Написал свой числовой класс типа float, но со встроенными механизмами чтения из базы, вывода в строку, парсинга из строки. Куча дополнительных ограничителей - точность, разделитель дробных и тысяч... вплодь до шифрования при записи строки в базу (планируется). Вынужден переписать арифметические операции с целыми и дробными... но операция присвоения не работает на приватных полях...

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

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

Не создаются BuildConfig.java R.java
BuildConfig.java , R.java Не создаются в папке /gen при создании проекта в...

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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