Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/120: Рейтинг темы: голосов - 120, средняя оценка - 4.93
5 / 5 / 3
Регистрация: 21.08.2012
Сообщений: 205

Проверка на null

09.05.2013, 14:01. Показов 25177. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Пишу метод в ктором вызываю ещё методов 5, все они могут вернуть null, надоело везде перед каждым писать
Java
1
2
if(somemethod!=null){
}
Может есть другой способ проверять? Спасибо за ответы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2013, 14:01
Ответы с готовыми решениями:

Что быстрее, проверка на null, или проверка на тип перечисления в запросе?
вопрос такой. если несколько таблиц. сходных по структуре в запросе. в первой таблице типТовара = перечисление.тратата.набор во...

Проверка на null
name == null, но не равно null!? Как такое может быть? p.s. со строгим равенством (===) то же самое

Проверка на null
Как правильно создать условие. У меня есть строчки кода, которые в переменную apiTokenMy записывают значение String tokenMy1 =...

13
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
09.05.2013, 14:18
Как вариант через блок try {}catch{}
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
09.05.2013, 19:05
Цитата Сообщение от Dzib Посмотреть сообщение
ещё методов 5, все они могут вернуть null
постарайтесь переделать методы так чтобы null не возвращался, это плохая практика, так как null
может возникать как ошибка и как логика и вам никогда не разобраться в каком случае какой вариант
в 8 версии уже специально ввели класс Optional
Кликните здесь для просмотра всего текста
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
/*
 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package java.util;
 
import java.util.function.Consumer;
import java.util.function.Supplier;
 
/**
 * A container object which may or may not contain a non-null value.
 * If a value is present, {@code isPresent()} will return {@code true} and
 * {@code get()} will return the value.
 *
 * <p>Additional methods that depend on the presence or absence of a contained
 * value are provided, such as {@link #orElse(java.lang.Object) orElse()}
 * (return a default value if value not present) and
 * {@link #ifPresent(java.util.function.Consumer) ifPresent()} (execute a block
 * of code if the value is present).
 *
 * @since 1.8
 */
public final class Optional<T> {
    /**
     * Common instance for {@code empty()}.
     */
    private static final Optional<?> EMPTY = new Optional<>();
 
    /**
     * If non-null, the value; if null, indicates no value is present
     */
    private final T value;
 
    /**
     * Construct an empty instance.
     *
     * @implNote Generally only one empty instance, {@link Optional#EMPTY},
     * should exist per VM.
     */
    private Optional() {
        this.value = null;
    }
 
    /**
     * Returns an empty {@code Optional} instance.  No value is present for this
     * Optional.
     *
     * @apiNote Though it may be tempting to do so, avoid testing if an object
     * is empty by comparing with {@code ==} against instances returned by
     * {@code Option.empty()}. There is no guarantee that it is a singleton.
     * Instead, use {@link #isPresent()}.
     *
     * @param <T> Type of the non-existent value
     * @return an empty {@code Optional}
     */
    public static<T> Optional<T> empty() {
        @SuppressWarnings("unchecked")
        Optional<T> t = (Optional<T>) EMPTY;
        return t;
    }
 
    /**
     * Construct an instance with the value present.
     *
     * @param value the non-null value to be present
     */
    private Optional(T value) {
        this.value = Objects.requireNonNull(value);
    }
 
    /**
     * Return an {@code Optional} with the specified present value.
     *
     * @param value the value to be present, which must be non-null
     * @return an {@code Optional} with the value present
     */
    public static <T> Optional<T> of(T value) {
        return new Optional<>(value);
    }
 
    /**
     * If a value is present in this {@code Optional}, returns the value,
     * otherwise throws {@code NoSuchElementException}.
     *
     * @return the non-null value held by this {@code Optional}
     * @throws NoSuchElementException if there is no value present
     *
     * @see Optional#isPresent()
     */
    public T get() {
        if (value == null) {
            throw new NoSuchElementException("No value present");
        }
        return value;
    }
 
    /**
     * Return {@code true} if there is a value present, otherwise {@code false}.
     *
     * @return {@code true} if there is a value present, otherwise {@code false}
     */
    public boolean isPresent() {
        return value != null;
    }
 
    /**
     * Have the specified consumer accept the value if a value is present,
     * otherwise do nothing.
     *
     * @param consumer block to be executed if a value is present
     * @throws NullPointerException if value is present and {@code consumer} is
     * null
     */
    public void ifPresent(Consumer<? super T> consumer) {
        if (value != null)
            consumer.accept(value);
    }
 
    /**
     * Return the value if present, otherwise return {@code other}.
     *
     * @param other the value to be returned if there is no value present, may
     * be null
     * @return the value, if present, otherwise {@code other}
     */
    public T orElse(T other) {
        return value != null ? value : other;
    }
 
    /**
     * Return the value if present, otherwise invoke {@code other} and return
     * the result of that invocation.
     *
     * @param other a {@code Supplier} whose result is returned if no value
     * is present
     * @return the value if present otherwise the result of {@code other.get()}
     * @throws NullPointerException if value is not present and {@code other} is
     * null
     */
    public T orElseGet(Supplier<? extends T> other) {
        return value != null ? value : other.get();
    }
 
    /**
     * Return the contained value, if present, otherwise throw an exception
     * to be created by the provided supplier.
     *
     * @apiNote A method reference to the exception constructor with an empty
     * argument list can be used as the supplier. For example,
     * {@code IllegalStateException::new}
     *
     * @param <X> Type of the exception to be thrown
     * @param exceptionSupplier The supplier which will return the exception to
     * be thrown
     * @return the present value
     * @throws X if there is no value present
     * @throws NullPointerException if no value is present and
     * {@code exceptionSupplier} is null
     */
    public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
        if (value != null) {
            return value;
        } else {
            throw exceptionSupplier.get();
        }
    }
 
    /**
     * Indicates whether some other object is "equal to" this Optional. The
     * other object is considered equal if:
     * <ul>
     * <li>it is also an {@code Optional} and;
     * <li>both instances have no value present or;
     * <li>the present values are "equal to" each other via {@code equals()}.
     * </ul>
     *
     * @param obj an object to be tested for equality
     * @return {code true} if the other object is "equal to" this object
     * otherwise {@code false}
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
 
        if (!(obj instanceof Optional)) {
            return false;
        }
 
        Optional other = (Optional) obj;
        return Objects.equals(value, other.value);
    }
 
    /**
     * Returns the hash code value of the present value, if any, or 0 (zero) if
     * no value is present.
     *
     * @return hash code value of the present value or 0 if no value is present
     */
    @Override
    public int hashCode() {
        return Objects.hashCode(value);
    }
 
    /**
     * Returns a non-empty string representation of this Optional suitable for
     * debugging. The exact presentation format is unspecified and may vary
     * between implementations and versions.
     *
     * @implSpec If a value is present the result must include its string
     * representation in the result. Empty and present Optionals must be
     * unambiguously differentiable.
     *
     * @return the string representation of this instance
     */
    @Override
    public String toString() {
        return value != null
            ? String.format("Optional[%s]", value)
            : "Optional.empty";
    }
}

для того чтобы метод возвращал объект а не null, во избежание непоняток, можете уже начинать его юзать вставив в свой класс
1
5 / 5 / 3
Регистрация: 21.08.2012
Сообщений: 205
13.05.2013, 03:10  [ТС]
mutagen большое спасибо за ответ. Очень прошу сделайте пример маленький что б я увидел как оно работает, очень хочу освоить эту новую фичу.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
13.05.2013, 04:30
я закоментировал суплаера и консьюмера, так как у них другая задача не относящаяся к делу

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
import java.util.NoSuchElementException;
import java.util.Objects;
 
/**
 * @author mutagen
 */
public class OptionalDemo {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        CustomClass customClass = new CustomClass();
        Optional<String> rezNotNull = customClass.myNotNullMethod(100);
        Optional<String> rezCouldBeNull = customClass.myCouldBeNullMethod(100);
        if (rezNotNull.isPresent()) {
            System.out.println("we have value so we can proceed: " + rezNotNull.get());
        }
 
        if (rezCouldBeNull.isPresent()) {
            // we never get null as response
        } else {
            System.out.println("do nothing and we never get null as response");
        }
    }
 
    static class CustomClass {
 
        public Optional<String> myNotNullMethod(int i) {
            // do smth
            return new Optional<>(String.valueOf(i));
        }
 
        public Optional<String> myCouldBeNullMethod(int i) {
            // do smth
            return new Optional<>();
        }
    }
 
    static final class Optional<T> {
 
        /**
         * Common instance for {@code empty()}.
         */
        private static final Optional<?> EMPTY = new Optional<>();
        /**
         * If non-null, the value; if null, indicates no value is present
         */
        private final T value;
 
        /**
         * Construct an empty instance.
         *
         * @implNote Generally only one empty instance, {@link Optional#EMPTY}, should exist per VM.
         */
        private Optional() {
            this.value = null;
        }
 
        /**
         * Returns an empty {@code Optional} instance. No value is present for this Optional.
         *
         * @apiNote Though it may be tempting to do so, avoid testing if an object is empty by comparing with {@code ==}
         * against instances returned by {@code Option.empty()}. There is no guarantee that it is a singleton. Instead,
         * use {@link #isPresent()}.
         *
         * @param <T> Type of the non-existent value
         * @return an empty {@code Optional}
         */
        public static <T> Optional<T> empty() {
            @SuppressWarnings("unchecked")
            Optional<T> t = (Optional<T>) EMPTY;
            return t;
        }
 
        /**
         * Construct an instance with the value present.
         *
         * @param value the non-null value to be present
         */
        private Optional(T value) {
            this.value = Objects.requireNonNull(value);
        }
 
        /**
         * Return an {@code Optional} with the specified present value.
         *
         * @param value the value to be present, which must be non-null
         * @return an {@code Optional} with the value present
         */
        public static <T> Optional<T> of(T value) {
            return new Optional<>(value);
        }
 
        /**
         * If a value is present in this {@code Optional}, returns the value, otherwise throws
         * {@code NoSuchElementException}.
         *
         * @return the non-null value held by this {@code Optional}
         * @throws NoSuchElementException if there is no value present
         *
         * @see Optional#isPresent()
         */
        public T get() {
            if (value == null) {
                throw new NoSuchElementException("No value present");
            }
            return value;
        }
 
        /**
         * Return {@code true} if there is a value present, otherwise {@code false}.
         *
         * @return {@code true} if there is a value present, otherwise {@code false}
         */
        public boolean isPresent() {
            return value != null;
        }
 
        /**
         * Have the specified consumer accept the value if a value is present, otherwise do nothing.
         *
         * @param consumer block to be executed if a value is present
         * @throws NullPointerException if value is present and {@code consumer} is null
         */
//        public void ifPresent(Consumer<? super T> consumer) {
//            if (value != null) {
//                consumer.accept(value);
//            }
//        }
        /**
         * Return the value if present, otherwise return {@code other}.
         *
         * @param other the value to be returned if there is no value present, may be null
         * @return the value, if present, otherwise {@code other}
         */
        public T orElse(T other) {
            return value != null ? value : other;
        }
 
        /**
         * Return the value if present, otherwise invoke {@code other} and return the result of that invocation.
         *
         * @param other a {@code Supplier} whose result is returned if no value is present
         * @return the value if present otherwise the result of {@code other.get()}
         * @throws NullPointerException if value is not present and {@code other} is null
         */
//        public T orElseGet(Supplier<? extends T> other) {
//            return value != null ? value : other.get();
//        }
        /**
         * Return the contained value, if present, otherwise throw an exception to be created by the provided supplier.
         *
         * @apiNote A method reference to the exception constructor with an empty argument list can be used as the
         * supplier. For example, {@code IllegalStateException::new}
         *
         * @param <X> Type of the exception to be thrown
         * @param exceptionSupplier The supplier which will return the exception to be thrown
         * @return the present value
         * @throws X if there is no value present
         * @throws NullPointerException if no value is present and {@code exceptionSupplier} is null
         */
//        public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
//            if (value != null) {
//                return value;
//            } else {
//                throw exceptionSupplier.get();
//            }
//        }
        /**
         * Indicates whether some other object is "equal to" this Optional. The other object is considered equal if:
         * <ul>
         * <li>it is also an {@code Optional} and;
         * <li>both instances have no value present or;
         * <li>the present values are "equal to" each other via {@code equals()}.
         * </ul>
         *
         * @param obj an object to be tested for equality
         * @return {code true} if the other object is "equal to" this object otherwise {@code false}
         */
        @Override
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            }
 
            if (!(obj instanceof Optional)) {
                return false;
            }
 
            Optional other = (Optional) obj;
            return Objects.equals(value, other.value);
        }
 
        /**
         * Returns the hash code value of the present value, if any, or 0 (zero) if no value is present.
         *
         * @return hash code value of the present value or 0 if no value is present
         */
        @Override
        public int hashCode() {
            return Objects.hashCode(value);
        }
 
        /**
         * Returns a non-empty string representation of this Optional suitable for debugging. The exact presentation
         * format is unspecified and may vary between implementations and versions.
         *
         * @implSpec If a value is present the result must include its string representation in the result. Empty and
         * present Optionals must be unambiguously differentiable.
         *
         * @return the string representation of this instance
         */
        @Override
        public String toString() {
            return value != null
                    ? String.format("Optional[%s]", value)
                    : "Optional.empty";
        }
    }
}
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
13.05.2013, 11:01
Цитата Сообщение от Vortal Посмотреть сообщение
Как вариант через блок try {}catch{}
Ну да, ну да.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Object sync = null;
 
//...
 
try{
    synchronized(sync){
        sync.wait();
    }
} catch(NullPointerException ex){
    sync = new Object();
    synchronized(sync){
        sync.wait();
    }
}
Реальный код.

P.S. Жаль, чувак не в моем подразделении работал. Я бы его уволил по несоответствию. А так только рекомендацию пришлось дать его руководителю.

P.P.S. Проверять на null через try/catch - это не просто плохо. Это настолько плохо, что хуже придумать сложно.
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
13.05.2013, 12:28
Цитата Сообщение от Skipy Посмотреть сообщение
Проверять на null через try/catch - это не просто плохо. Это настолько плохо, что хуже придумать сложно.
ого ))) а чем ему ифка не угодила то, не спрашивал? )))
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
13.05.2013, 12:51
эпично. просто эпично
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
13.05.2013, 13:52
Цитата Сообщение от mutagen Посмотреть сообщение
ого ))) а чем ему ифка не угодила то, не спрашивал? )))
Ну, очевидно, тем же, чем и Vortal-у, предложившему вариант с try-catch.

Вы же представьте, как это писалось.

Написали. Запустили. Словили исключение. Добавили обработку исключения.

Голова в этой цепочке задействована не была. Это чаще всего так и бывает, когда обрабатывают RuntimeException-ы.

P.S. Вопрос "а как можно синхронизироваться на не финальном объекте" я даже не задавал.
0
5 / 5 / 3
Регистрация: 21.08.2012
Сообщений: 205
13.05.2013, 19:18  [ТС]
Не пойму что этот клас Optional делает) Изменю я немного:
Java
1
2
3
4
 public Optional<String> myNotNullMethod(Integer i) {
            // do smth
            return new Optional<>(String.valueOf(i));
        }
Java
1
 Optional<String> rezNotNull = customClass.myNotNullMethod(null);
Полюбому null возвращает. Или он не так должен работать?

Добавлено через 18 минут
Я пишу методы такого типа:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public Integer checkSMTHG(Integer value) {
        if (value == null) {
            return null;
        }
 
        int CONST = 50;
 
        if (value > CONST) {
            return 1;
        }
        if (value < CONST) {
            return -1;
        }
        return 0;
    }
return null в моем понимании означает послать вызывающей стороне знак что что-то пошло не так. То что вернулось из метода и так почти всегда проверяется на нул, чем плохой такой подход?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.05.2013, 01:36
Цитата Сообщение от Dzib Посмотреть сообщение
Полюбому null возвращает. Или он не так должен работать?
он возвращает не null а инстанс класса Optional, и методом isPresent() можно проверить перед использованием есть ли значение
в value, почитайте код - это полезно
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
14.05.2013, 11:55
Цитата Сообщение от Dzib Посмотреть сообщение
То что вернулось из метода и так почти всегда проверяется на нул, чем плохой такой подход?
Нет. То, что вернулось из метода, в норме НЕ проверяется на null. Иначе за проверками не будет видно кода. Приложение должно быть спроектировано таким образом, чтобы null использовался только по назначению. Индикация, что что-то пошло не так, к назначениям null не относится. Что-то пошло не так - это исключительная ситуация, т.е. требует генерации исключения.
1
5 / 5 / 3
Регистрация: 21.08.2012
Сообщений: 205
19.05.2013, 07:51  [ТС]
А какое использования null по назначению?
Ну разве проверить на null не занимает меньше ресурсов и места в коде чем блок try/catch?
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
20.05.2013, 10:11
Exception-ы могут быть специфичны, null неспецифичен.
Брошенный Exception придется поймать, null можно забыть обработать.
Забытый null может привести к совершенно невероятным ошибкам в самых неожиданных местах. Как говорил один из моих преподавателей "вам очень сильно повезет, если все это рухнет при первом же запуске".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2013, 10:11
Помогаю со студенческими работами здесь

Проверка значения на null в БД
Добрый день. С помощью ODBC обращаюсь к СУБД MySQL. OdbcCom = new System.Data.Odbc.OdbcCommand(&quot;SELECT * FROM users...

Проверка значений на null
Здравствуйте, столкнулся с таким вопросом. Есть база MSSQL, использую EF. Есть таблица с полями которые могут быть null, значений много....

Проверка объекта на null
День добрый. Вылетает NullReferenceException в операторе Tool1 != null, хотя объект проинициализирован, в чем может быть проблема?

Проверка в VBA на NULL
Добрый день. Проблема такая в макросе VBA есть такая строка: ME.ОС_внеш.Caption = ос_внеш ос_внеш = DLookup(&quot;&quot;,...

Не срабатывает проверка на null
Здравствуйте! Подскажите, пожалуйста, почему не работает следующий код: declare @s int; declare @result int; set @s = null; if @s...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru