All streams
Search
Write a publication
Pull to refresh
69
0
Sergey Solovyev @serso

User

Send message
Нет, два инстанца именно Boolean'а. Соответсвенно оверхеда на заголовок + возможные выравнивания для кратности 8 байтам нет. Согласен, есть оверхед на ссылку.

Потому что null это не «Not Set» и null это не Don't Know.
Всё зависит от того какое логическое поределение мы ему дадим. 2+2 != 4 в кольце вычетов по модулю 3, потому что так определено сложение. Также мы можем определить и использование Boolean'а в зависимости от задачи.
Мне так не кажется — зачем создавать дополнительные сущности, если имеющиеся идеально подходят? Тем более что при правильном использовании Boolean'а в системе находятся только два инстанца. Откуда в таком случае взяться проблемам с памятью?
Да, кстати, любой Generic будет работать только с Boolean, Long, Integer и т.д., т.е. не с примитивом
Ну и напоследок — не используйте тип Boolean. Мне трудно придумать ситуацию, где он реально может потребоваться

Здесь можно поспорить — Boolean хорошо использовать, когда нужно именно три состояния, например, True/False/Not Set и Yes/No/Don't Know.
Да. Тогда уж и тут надо:
// JaxbContextRegistry.java
@NotNull
public <T> T unmarshall(@NotNull String xml,  @NotNull Class<T> objectClass, @NotNull Class<?>... seeClasses) {
    T result = null;
    // bla bla bla
    return result;
}
Хотя у меня тоже самое написано. Странные вещи творятся в понедельник сутра.

Ой, только что нашёлся баг в хабраредакторе — при нажатии кнопки «Предпросмотр» — пропадают внутренние теги в исходном коде, в данном случае пропадает <T>.
Во втором случае конечно должно быть:
public static <T> T unmarshal(@NotNull String string, Class<?> objectClass) {
    //<T> is for java compiler bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6302954
    return JaxbContextRegistry.getInstance().<T>unmarshall(string, objectClass);
}
Ха, привет, не заметил, что статью ты написал. У меня 2.6.35-31-generic-pae #63-Ubuntu i686 GNU/Linux, у остальных Windows различных мастей.
О багах в компиляторе:
вот такой кусок кода компилируется у меня на машине, но не компилируется на компьютере соседа:

public static <T> T unmarshal(@NotNull String string, Class<?> objectClass) {
   return JaxbContextRegistry.getInstance().unmarshall(string, objectClass);
}

// JaxbContextRegistry.java
@NotNull
public <T> T unmarshall(@NotNull String xml, @NotNull Class<?>... classes) {
    T result = null;
    // bla bla bla
    return result;
}


У нас одинаковые версии java, отличие только в операционных системах. При этом статический анализатор кода Jetbrains IDEA проблем не видит. В качестве workaround'а мы явно приводим тип T:

public static <T> T unmarshal(@NotNull String string, Class<?> objectClass) {
    //<T> is for java compiler bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6302954
    return JaxbContextRegistry.getInstance().<T>unmarshall(string, objectClass);
}

при этом IDEA справедливо замечает, что такое приведение типов в данном случае не нужно.
Разве в 1ом варианте нельзя использовать context#runOnUiThread(Runnable)?
Не понимаю о чём вы — выдержка из самого популярного ответа:
I've had good success using Mockito.

When I tried learning about JMock and EasyMock, I found the learning curve to be a bit steep (though maybe that's just me).

I like Mockito because of its simple and clean syntax that I was able to grasp pretty quickly. The minimal syntax is designed to support the common cases very well, although the few times I needed to do something more complicated I found what I wanted was supported and easy to grasp.
Не вы один так считаете: stackoverflow.

PS При работе с Mockito появился термин: замОчить класс/метод =)
Наверное, глупо звучит, но забыл что Hibernate сам маппирует объект с представлением в базе.
Если у вас очень много мест такого использования не задумывались ли вы описать класс UnsignedLong?
1. На самом деле, хибернейт сам не реализует кеширование как таковое
2. Хибернейт не хранит сами объекты Ваших классов. Он хранит информацию в виде массивов строк, чисел и т. д. И идентификатор объекта выступает указателем на эту информацию. Концептуально это нечто вроде Map, в которой id объекта — ключ, а массивы данных — значение. Приблизительно можно представить себе это так:
1 -> { «Pupkin», 1, null, {1,2,5} }

Как первое вяжется со вторым? И если второе — истина, как hibernate восстанавливает объект, если, например, для этого требуются некие хитрые действия?

PS Насколько я помню проксирование объектов можно отключить.
Мы сделали проще (правда не с ант скриптом, но это не важно):
1. Есть конфигурационный файл (тот же ант скрипт) с переменными (хранится в СКВ)
2. Есть запускающий скрипт, в котором указаны все нужные параметры (хранится в СКВ, параметры не валидные, т.е., например, login=LOGIN и т.д. или хранят (как в вашем случае) дефолтные значения)

Пользователь выкачивает проект, копирует запускающий скрипт, модифицирует его (выставляет параметры для своей среды) и успешно работает. Всё довольно просто, ничего инклюдить не надо.

Но это на самом деле уже придирки — естественно работать можно и так =)
Вот здесь, кстати, логин и пароль зашиты прямо в скрипте?

<property name="tomcat.user.name" value="login" />
<property name="tomcat.user.password" value="password" />


Лучше: ${login}, ${password}, а вызывать ант скрипт с параметрами: -Dlogin=MY_LOGIN -Dpassword=STRONG_PASSWORD

Плюсы: конечным пользователям не придётся модифицировать код скрипта (который, скорее всего, под СКВ лежит)
Засчитано, сами потратили много сил и времени для перевода проекта под Maven.
Просто из любопытства — вы слышали о Maven? Если нет, то советую глянуть; я бы сазал, что это следующий шаг после анта (кстати, из под maven'а можно выполнять любую антовскую задачу).
Исправлю в новой версии! Ждите обновления!

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity