Re: создание объектов в Java
От: Аноним  
Дата: 11.04.14 03:12
Оценка: :))) :))
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

А>Или создание объекта сразу ?
А>
А>MyObject myObject=new MyObject();
А>


Это зависит от сферы где вы работаете. Если этерпрайз то нужно вот так:

public interface MyObjectFactory {
public MyObject createInstance();
}

public class MyObjectInstanceFactoryImpl implements MyObjectFactory {
public MyObject createInstance() {
return new MyObject();
}
}

public class MyObjectInstanceFactoryHolder {

private static MyObjectInstanceFactoryHolder ourInstance = new MyObjectInstanceFactoryHolder();
private MyObjectFactory myObjectFactory;

public static MyObjectInstanceFactoryHolder getInstance() {
return ourInstance;
}

private MyObjectInstanceFactoryHolder() {
this.myObjectFactory = new MyObjectFactoryImpl();
}

public MyObjectFactory getFactory() {
return this.myObjectFactory;
}
}

MyObject myObject = MyObjectInstanceFactoryHolder.getInstance().getFactory().createInstance();
Re: создание объектов в Java
От: Пацак Россия  
Дата: 11.04.14 18:41
Оценка: +2 -1
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
MyObject myObject=new MyObject();


Причем если во время написания этой строчки нет стопроцентной уверенности, что ниже по коду myObject будет изменяться, то лучше сразу писать:
final MyObject myObject=new MyObject();

И вообще принять final за правило. Меньше будет шансов, что переменную случайно изменят в результате какой-нибудь случайной опечатки. Лишняя страховка никогда не помешает, а убрать final в случае чего современные IDE позволяют не елозя по коду нажатием пары клавиш.

  PS
...и даже если стопроцентная уверенность есть (например значение myObject считается итерационно), то стоит на секунду тормознуть и задуматься — возможно имеет смысл вынести такую сложную инициализацию в отдельный private-метод, чтобы код стал нагляднее и устойчивее к будущим косякам.
Ку...
создание объектов в Java
От: Аноним  
Дата: 10.04.14 23:23
Оценка:
Какой предпочтительный код?
MyObject myObject= null;
myObject= new MyObject();

Или создание объекта сразу ?
MyObject myObject=new MyObject();
Re: создание объектов в Java
От: andyag  
Дата: 11.04.14 00:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

Вот этот. В 2 раза больше заработаете.
Re: создание объектов в Java
От: vsb Казахстан  
Дата: 11.04.14 02:50
Оценка:
Первый вариант именно в таком виде не имеет никакого смысла.

Видел примерно такой код:
Connection connection = null;
PreparedStatement statement = null;
...
try {
    connection = getConnection();
    statement = connection.prepareStatement(...);
    ...
} finally {
    if (statement != null) {
        statement.close();
    }
    if (connection != null) {
        connection.close();
    }
}

(упростил некоторые моменты, суть такая). Тут это имеет смысл, чтобы не писать много try-finally, а обработать всё в одном месте. Но это еще до 7 java имело смысл, сейчас всё стало попроще.
Re: создание объектов в Java
От: Blazkowicz Россия  
Дата: 11.04.14 06:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

А>Или создание объекта сразу ?
А>
А>MyObject myObject=new MyObject();
А>

При прочих равных предпочительнее тот, который следует coding convention и содержит меньше синтаксического шума.

Почему такой вариант не предложен?
MyObject obj;
obj = new MyObject();
Re[2]: создание объектов в Java
От: Аноним  
Дата: 11.04.14 06:47
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
помоему в методе надо бы писать сразу
MyObject myObject=new MyObject();
без сточки MyObject myObject= null;
и сразу во-второй строке кода myObject= new MyObject();



B>Здравствуйте, Аноним, Вы писали:


А>>Какой предпочтительный код?

А>>
А>>MyObject myObject= null;
А>>myObject= new MyObject();
А>>

А>>Или создание объекта сразу ?
А>>
А>>MyObject myObject=new MyObject();
А>>

B>При прочих равных предпочительнее тот, который следует coding convention и содержит меньше синтаксического шума.

B>Почему такой вариант не предложен?

B>
B>MyObject obj;
B>obj = new MyObject();
B>
Re[3]: создание объектов в Java
От: Blazkowicz Россия  
Дата: 11.04.14 07:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>помоему в методе надо бы писать сразу

А>MyObject myObject = new MyObject();
А>без сточки MyObject myObject = null;
А>и сразу во-второй строке кода myObject = new MyObject();

В каком методе и почему "надо бы"? И научитесь таки пробелы расставлять.
Re: создание объектов в Java
От: Аноним  
Дата: 11.04.14 07:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

А>Или создание объекта сразу ?
А>
А>MyObject myObject=new MyObject();
А>

final MyObject myObject = new MyObject();
Re: создание объектов в Java
От: Аноним  
Дата: 11.04.14 07:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

А>Или создание объекта сразу ?
А>
А>MyObject myObject=new MyObject();
А>

Конечно, второй вариант правильный. На первый вариант вы еще и предупреждение от IDE получите, что присвоенное значение не используется.
Re: создание объектов в Java
От: Аноним  
Дата: 14.04.14 09:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Какой предпочтительный код?

А>
А>MyObject myObject= null;
А>myObject= new MyObject();
А>

А>Или создание объекта сразу ?
А>
А>MyObject myObject=new MyObject();
А>


Писать ... = null не нужно в большинстве случаев, ибо любые объекты по умолчанию равны null если им не присвоить другое значение. В остальном — оба способа нормальные и применимые, в зависимости от контекста
Re[2]: создание объектов в Java
От: the_moon  
Дата: 15.04.14 07:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Какой предпочтительный код?

А>>
А>>MyObject myObject= null;
А>>myObject= new MyObject();
А>>

А>>Или создание объекта сразу ?
А>>
А>>MyObject myObject=new MyObject();
А>>


А>Писать ... = null не нужно в большинстве случаев, ибо любые объекты по умолчанию равны null если им не присвоить другое значение. В остальном — оба способа нормальные и применимые, в зависимости от контекста


Присвоение null идет автоматом только для переменных класса, но ни как не для локальных переменных. А присваивать null надо, если ты ожидаешь, что оно будет нулем где то. Если нет, то лучше сразу присвоить значение и добавить финал, либо не присваивать, тогда при компиляции ты получишь ошибку, там, где ты читаешь значение переменной.
KOPOTbILLIKA KPbIC
Re[2]: создание объектов в Java
От: Hard_Club  
Дата: 16.04.14 13:11
Оценка:
"сейчас всё стало попроще." За счет чего?
Re[3]: создание объектов в Java
От: vsb Казахстан  
Дата: 16.04.14 13:16
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>"сейчас всё стало попроще." За счет чего?


В Java 7 появилась конструкция try-with-resources.

try (Connection connection = getConnection();
     PreparedStatement statement = connection.prepareStatement(...)) {
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.