Size: a a a

2018 May 28

ЕП

Егор Пилипенко in Kotlin Moscow
Dumitru Preguza
хотя презентация проекта думаю им понравилось, в конце аплодировали
Они предвкушали твою фрустрацию их дальнейшим требованием ))
источник

Ⓢⓔⓡⓖ in Kotlin Moscow
Dumitru Preguza
я  попробовал на практике создать проект на котлин (bk. ktor + fr. KtJs) + java (база данных реализована на java).
спросили сколько займет времени и возможно ли перевести все на сервлетах и jsp
Первести на сервлеты и jsp, это что тоже шутка?
источник

ZD

Z D in Kotlin Moscow
в программировании видно тоже есть мода на ретро )
источник

DP

Dumitru Preguza in Kotlin Moscow
Ⓢⓔⓡⓖ
Первести на сервлеты и jsp, это что тоже шутка?
нет, они так и сказали
источник

DP

Dumitru Preguza in Kotlin Moscow
Егор Пилипенко
Они предвкушали твою фрустрацию их дальнейшим требованием ))
наверно, все же, я сделал так как хочу и не жалею
источник

DP

Dumitru Preguza in Kotlin Moscow
просто ребята из команды сделали через обычные jsp и сервлеты (свои отдельные модули), вот и спросили меня
источник

А

Александр in Kotlin Moscow
Добрый день
источник

А

Александр in Kotlin Moscow
подскажите такой вопрос. Если класс в котлине имеет вложеный интерфейс, то унаследовав этот класс, мы наследуем итерфейс
источник

А

Александр in Kotlin Moscow
abstract class Cl1{
   interface I{
       fun foo()
   }
}

open class Cl2 : Cl1() {
   val i:Int = 0
}

class Cl3 {

   val tmp:Cl2.I

}
источник

А

Александр in Kotlin Moscow
что я не так делаю, подскажите пожалуйста
источник

А

Александр in Kotlin Moscow
Уже разобрался, классы по разному компиляться у жабы и котлина
источник

VV

Vladislav Verminsky in Kotlin Moscow
@sanimus вобщето компиляться одинаково. Но причем тут вложенный класс и наследование?
источник

А

Александр in Kotlin Moscow
Vladislav Verminsky
@sanimus вобщето компиляться одинаково. Но причем тут вложенный класс и наследование?
по разному. в Cl3.class ява компилятор добавит импорт интерфейса из Cl1.class. в котлине нет. можно конечно через Cl1.I сходить, но в случае если в  Cl2 будет переопределение или перегрузка, вызовется все равно реализация Cl1.
источник

VV

Vladislav Verminsky in Kotlin Moscow
Ты перепутал понятия наследование и включение.
источник

А

Александр in Kotlin Moscow
Vladislav Verminsky
Ты перепутал понятия наследование и включение.
поясни
источник

VV

Vladislav Verminsky in Kotlin Moscow
У тебя Cl1 содержит интерфейс I. Cl2 наследует Cl1 и не включает в себя интерфейс I. Cl3 включает ссылку на Cl2. При этом ты написал не валидную конструкцию. Ты не можешь обратиться к интерфейсу I  через класс Cl2. Это не валидно ни с точки Java ни с точки Kotlin. Так как вложенные интерфейсы ника не наследуются. Вложенные классы и инетрфейсы, как и поля, не переоперделяются, они перезаписываются
источник

А

Александр in Kotlin Moscow
Vladislav Verminsky
У тебя Cl1 содержит интерфейс I. Cl2 наследует Cl1 и не включает в себя интерфейс I. Cl3 включает ссылку на Cl2. При этом ты написал не валидную конструкцию. Ты не можешь обратиться к интерфейсу I  через класс Cl2. Это не валидно ни с точки Java ни с точки Kotlin. Так как вложенные интерфейсы ника не наследуются. Вложенные классы и инетрфейсы, как и поля, не переоперделяются, они перезаписываются
Суть в том что такая запись на яве работает. И я сегодня с ней столкнулся на работе. При попытке воспроизвести это на котлине не получилось. На счёт того что я не могу обратиться к интерфейсу I через класс Cl2, на счёт валидность точно не скажу но, в яве работает
источник

А

Александр in Kotlin Moscow
И если я во вложенном интерфейсе в классе Cl2 оставлю название и меняю сигнатуру метода то, в файле Cl3.class  он начинает ссылаться на интерфейс Cl2
источник

А

Александр in Kotlin Moscow
Vladislav Verminsky
У тебя Cl1 содержит интерфейс I. Cl2 наследует Cl1 и не включает в себя интерфейс I. Cl3 включает ссылку на Cl2. При этом ты написал не валидную конструкцию. Ты не можешь обратиться к интерфейсу I  через класс Cl2. Это не валидно ни с точки Java ни с точки Kotlin. Так как вложенные интерфейсы ника не наследуются. Вложенные классы и инетрфейсы, как и поля, не переоперделяются, они перезаписываются
Не подскажешь где причитать про наследование вложенных классов и интерфейсов ?
источник
2018 May 29

VV

Vladislav Verminsky in Kotlin Moscow
@sanimus слушай был не прав. Действительно на Jave можно обратиться ссылкой к инетрфесу родителя через указатель  потомка, а в Kotline нельзя. Однако в данном случае Котлин прозраченее. Тебя как раз запутала эта возможность в Java. По факту используется ссылка через родителя. Если ты напишешь такой-же интерфейс в Cl2 , то это уже будет не переопределение, а перезапись. т.е.  интерфейс класса Cl2.
Допустим есть реализация интерфейса Cl2.I, то ты не сможешь привести ее тип к интерфейсу Cl1.I. Считай что для внутренних классов и интерфейсов имя внешнего для него класса это как указание пакета. т.е. тут котлин чеснее он говорит что в пакете Cl2 нет класса I, а Java разрешает что на самомо деле не так.
Почитать можно в документации к языкам, или по Jave можно почитать в книжких по OCA/OCP ( https://www.amazon.com/OCA-OCP-Java-Programmer-Certification/dp/1119272092/ref=sr_1_4?ie=UTF8&qid=1467273055&sr=8-4&keywords=study+guide+java+8 ), или в каких-других тестах, которые любят использовать задокументированные, но не часто применяемые на практике вещи.
источник