powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как в
12 сообщений из 12, страница 1 из 1
как в
    #38187395
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как в java передать ссылочный тип в функцию и перевести указатель на новый объект, чтобы в вызывающем функцию коде отобразились эти изменения ?
...
Рейтинг: 0 / 0
как в
    #38187398
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90как в java передать ссылочный тип в функцию и перевести указатель на новый объект, чтобы в вызывающем функцию коде отобразились эти изменения ?
Любим mutable holder-ом. Например Object[1].
...
Рейтинг: 0 / 0
как в
    #38187400
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

можно пример?
...
Рейтинг: 0 / 0
как в
    #38187414
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90можно пример?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
target = new Object();
Object[] holder = new Object[] {target};
update(holder);
target = holder[0];

public  void update(Object[] out){
   out[0] = new Object();
}
...
Рейтинг: 0 / 0
как в
    #38187418
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

то есть сначала надо положить наш объект в массив, потом написать функцию специально для масссива, в функции специально вытащить этот объект, изменить на него ссылку.


как то сложно))))
...
Рейтинг: 0 / 0
как в
    #38187444
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90как то сложно))))
Потому что в большинстве случаев нафиг не нужно.
...
Рейтинг: 0 / 0
как в
    #38187617
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
MyObjectClass myObject = new MyObjectClass();

myObject = myLovelyFunction(myObject);

public MyObjectClass myLovelyFunction(MyObjectClass myObject) {
MyObjectClass resultObject = new MyObjectClass();

return resultObject;
}
...
Рейтинг: 0 / 0
как в
    #38187844
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTID,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class Test {
  
    public static void main(String[] args)  {
        MyObjectClass myObject = new MyObjectClass();
        System.out.println("before: "+myObject);
        Test t = new Test();
        t.myLovelyFunction(myObject);
        System.out.println("after: "+myObject);
      }

    public MyObjectClass myLovelyFunction(MyObjectClass myObject) {
        MyObjectClass resultObject = new MyObjectClass();
        System.out.println("inside: "+resultObject);
        return resultObject;
    }
}

class MyObjectClass {
}
...
Рейтинг: 0 / 0
как в
    #38207019
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас ошибка в тесте, исправил:

строку

t.myLovelyFunction(myObject);

нужно заменить на:

myObject = t.myLovelyFunction(myObject);
javapeckerHoBTID,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class Test {
  
    public static void main(String[] args)  {
        MyObjectClass myObject = new MyObjectClass();
        System.out.println("before: "+myObject);
        Test t = new Test();
        myObject = t.myLovelyFunction(myObject);
        System.out.println("after: "+myObject);
      }

    public MyObjectClass myLovelyFunction(MyObjectClass myObject) {
        MyObjectClass resultObject = new MyObjectClass();
        System.out.println("inside: "+resultObject);
        return resultObject;
    }
}

class MyObjectClass {
}
...
Рейтинг: 0 / 0
как в
    #38207877
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90как в java передать ссылочный тип в функцию и перевести указатель на новый объект, чтобы в вызывающем функцию коде отобразились эти изменения ? ООП-решение :
1. Тип аргумента функции - интерфейс
2. Класс, передаваемый в качестве аргумента реализует данный интерфейс (п. 1)
3. Вносим изменения через setter'ы
Пример:
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
interface I { 
    
    void inc(); 
    void dec(); 
}

class A implements I {

    protected int i = 0;
    
    @Override
    public void inc() {
        i++;
    }

    @Override
    public void dec() {
        i--;
    }
}

class Program {
    
    public void incrementor(I obj) {
        obj.inc();
    }
    
    public void decrementor(I obj) {
        obj.dec();
    }
}

...
A a = new A();
...
...incrementor(a);
...decrementor(a);
...
...
Рейтинг: 0 / 0
как в
    #38208118
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что в большинстве случаев нафиг не нужно.
Похоже, что ява единственный более-менее популярный язык программирования, который не позволяет несколько значений вернуть из функции.
...
Рейтинг: 0 / 0
как в
    #38208119
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪПотому что в большинстве случаев нафиг не нужно.
Похоже, что ява единственный более-менее популярный язык программирования, который не позволяет несколько значений вернуть из функции.
В гугл коллекциях подобный функционал есть вроде.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как в
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]