Как стать автором
Обновить
12
0

Пользователь

Отправить сообщение

Но вот в чем соль: мы хотим, чтобы между этими скобками всегда был какой-то текст. То есть пустые скобки у нас тут не пройдут, они считаются некорректной штукой.

Уточните пожалуйста условие задания, "какой-то текст" это какой? Пробелы считаются каким-то текстом? Вложенные скобки считаются каким-то текстом? То есть "( )" и "((foo))" корректные "штуки"?

В примере после d1.style.marginLeft =… и d1.style.marginTop =… не хватает + 'px'.
Комплекс лазерного оружия «Пересве́т».
Принцип работы основан на засвечивании лазерным лучом оптических разведывательных систем.
:)
spoj.com сборник олимпиадных задач, большой выбор языков программирования.
Вот только недавно читал про российскую спортсменку, которую убил телефон, упавший в ванную. Я ещё удивился, как такое возможно, там же 12 вольт. Оказывается это не редкость.
Нууу, так неинтересно… Хочу именно анонимный класс.
Ладно, я поторопился, на самом деле можно было вызывать методы через рефлексию:
Method tenSize = foo.getClass().getMethod("tenSize");
System.out.println(tenSize.invoke(foo));
Ктож знал (:
Отвечаю на свой вопрос: да! Для пересечения типов будут доступны все методы интерфейсов, входящих в пересечение, а для анонимных классов будут доступны все поля и методы, объявленные в них! Получается var не просто синтаксический сахар, с ним мы можем делать то, чего раньше не могли.
Я тоже люблю яву за очевидность, когда можно написать Order order = new Order() и будешь на 100% уверен что order это Order:) И когда вижу код на других языках, где одни кавычки и закорючки, меня это печалит. Но если по работе каждый день приходится просматривать полотна из тысяч строк очевидной явы, глаза и мозг начинают уставать. Появляется желание некоторые очевидные вещи не писать.
Как мне кажется, здесь проблема не в перегрузке операторов, а в том что вы пытаетесь прибавить тёплое к зелёному и получить что-то осмысленное. К дате нужно прибавлять interval, тогда таких проблем не будет. Ну а если вас поставили перед фактом, то, например в Haskell, я бы определил оператор @ для прибавления секунд: + — дни, @ — секунды. Да, это костыль, но он появился не из-за перегрузки операторов, а из-за неправильного дизайна в целом.

Вообще, для повседневных задач, типа получения/вывода данных, рисования формочек и всякой бизнес-логики, перегрузка операторов не особо применима. А вот для математики это круто! Далеко за примером ходить не надо: работа с BigDecimal в Java сейчас это боль. С перегрузкой операторов это было бы на порядок проще и наглядней.
Цитата отсюда:
После выпуска новой редакции Java 8 вместе с lambda-выражениями в Java также было добавлено новое понятие effectively final.

Любая переменная, находящаяся снаружи lambda-выражения и проинициализированная единожды в локальной области видимости(в методе), является effectively final переменной и может быть использована в lambda-выражениях. Effectively final переменная очень похожа на final переменную, с единственным отличием: нет необходимости использовать модификатор final при объявлении переменной.
Действительно интересный момент. Было бы круто написать что-то вроде:
var foo = new ArrayList<Long>() {
    public int tenSize() {
        return 10 * size();
    }
};
С возможностью обратиться потом к методу foo.tenSize(). Я пролистал JEP 286, там написано что переменной var могут быть присвоены значения и анонимного класса, и пересечения типов. Но про доступ к полям и методам там ничего не сказано. Может кто-то в курсе, как с этим обстоят дела?
Немного перефразировал это предложение, надеюсь так звучит лучше :)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность