Описание тега default-implementation

1 ответ

Переопределите установщик определенной в протоколе переменной и используйте получатель из реализации протокола по умолчанию

У меня есть протокол с одной переменной protocol Localizable { var localizationKey: String { get set } } для которого я реализую метод получения по умолчанию: extension Localizable { var localizationKey: String { get { assert(true, "❌ Do not use thi…
2 ответа

Что означает амперсанд после этого оператора присваивания?

Я читал этот хороший ответ, касающийся "правила пяти", и заметил кое-что, чего не помню, когда видел раньше: class C { ... C& operator=(const C&) & = default; C& operator=(C&&) & = default; ... }; Какова цель & персон…
1 ответ

Каковы различия между агрегатной операцией и методом?

.......... Что ж, позвольте мне сказать вам, что я допустил некоторые ошибки: foreach(), на который я ссылался, - это не агрегатная операция, а метод из Iteable. Я изменил название своего вопроса и его содержание. Меня интересует, если агрегатная оп…
13 июн '15 в 22:46
3 ответа

Безопасно ли размещать определение специализации функции-члена шаблона (без тела по умолчанию) в исходном файле?

Вот что я имею в виду: // test.h class cls { public: template< typename T > void f( T t ); }; - // test.cpp template<> void cls::f( const char* ) { } - // main.cpp int main() { cls c; double x = .0; c.f( x ); // gives EXPECTED undefined …
1 ответ

Почему методы по умолчанию включали интерфейсы в Java 8 вместо добавления дополнительных интерфейсов в Collection Framework?

Обычно интерфейс будет заморожен после выпуска в производство. Следовательно, если вам нужна дополнительная функциональность, ваш вариант в Java будет заключаться в расширении существующего интерфейса в новый интерфейс, который описывает добавленную…
1 ответ

Переопределить реализацию списка или других коллекций по умолчанию в файле конфигурации Spring XML

Я заметил, что по умолчанию реализация списка в весеннем XML является ArrayList. Я старался: <bean id="employee" class="com.ioc.entity.Employee"> </property> <property name="list"> <list value-type="java.lang.String"> <val…
1 ответ

Реализация метода признаков по умолчанию для всех объектов признаков

У меня есть черта MyTraitи я хочу все черты объектов &MyTrait быть сопоставимыми друг с другом и ни с чем другим. У меня есть это сейчас на основе Как проверить на равенство между чертами объектов?, Проблема в том, что мне нужно использовать MyT…
1 ответ

Генерация кода для методов интерфейса по умолчанию (в IDEA)

Перед JDK 8 я бы написал: A implements B и нажмите Alt+Enter, чтобы автоматически генерировать заголовки методов для методов в B поэтому мне нужно только заполнить тела метода. Однако в JDK 8 возможно, что B обеспечивает default реализация, и это бо…
01 июл '13 в 22:50
1 ответ

Использование разных реализаций DocumentBuilder на одной и той же виртуальной машине Java

Я знаю, что этот вопрос уже задавался, но в другом аромате, поэтому я спрашиваю снова из моего POV. На нашем сервере приложений находится несколько EJB (так, AFAIK, несколько потоков, по одному на каждый вызов EJB). Некоторым EJB для правильного фун…
1 ответ

Как вы можете предоставить реализации по умолчанию для UIPageViewControllerDataSource?

Я предполагаю, что ответ на этот вопрос будет касаться проблем с протоколами Objective-C в целом, но это первая проблема такого типа, с которой я столкнулся. Я ожидаю, что эти методы будут использоваться при реализации UIPageViewControllerDataSource…
1 ответ

Реализована ли реализация быстрого расширения по умолчанию при компиляции или во время выполнения?

Мне интересно, есть ли способ работать с реализациями протокола по умолчанию в полиморфном стиле. пример protocol RockInterface { } extension RockInterface { func foo() { print("You Rock") } } extension RockInterface where Self: Metal { func foo() {…
1 ответ

Может ли компилятор сделать встраивание метода по умолчанию в метод черты?

Я понимаю, что метод черты не имеет тела, поэтому нечего встраивать. Но есть ли смысл помечать реализацию по умолчанию, как это? trait Magnitude { fn square_magnitude( &self ) -> f64; #[inline] fn magnitude( &self ) -> f64 { self.squar…
02 сен '18 в 21:15
0 ответов

Что делает "impl MyTrait" без "для MyStruct" в Rust?

Черты в Rust допускают реализацию по умолчанию для методов черт: вы можете написать некоторую реализацию прямо внутри trait MyTrait {...} и он будет использоваться в impl MyTrait for MyStruct потом. Тем не менее, вы также можете написать простой imp…
01 янв '19 в 16:37
2 ответа

Открытый закрытый принцип против реализации по умолчанию

Java 8 представил концепцию реализации по умолчанию для интерфейсов? Разве это не нарушает принцип Open Closed, поскольку на основе примера на https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html кажется, что вы всегда можете откры…
6 ответов

Как предоставить реализацию по умолчанию для протокола Objective C?

Я хотел бы указать протокол Objective C с дополнительной процедурой. Когда подпрограмма не реализована классом, соответствующим протоколу, я бы хотел использовать вместо него реализацию по умолчанию. Есть ли место в самом протоколе, где я могу опред…
2 ответа

Вызов реализации протокола по умолчанию из обычного метода, когда протокол имеет связанный тип

У меня есть протокол, который имеет статический метод с параметром по умолчанию. Я хочу изменить значение по умолчанию в классе, который реализует протокол. По сути делаю то, что легко сделать с классами и супер.У меня есть решение, только когда у п…
1 ответ

Как вы устраняете неоднозначность между статическими методами из реализованных протоколов?

Кастинг работает просто отлично для функций экземпляра. protocol Protocol1 {} extension Protocol1 { func instanceFunc() {} static func staticFunc() {} } protocol Protocol2 {} extension Protocol2 { func instanceFunc() {} static func staticFunc() {} }…
1 ответ

Проблема с протоколами Swift, ассоциированными типами, Self и реализациями по умолчанию

Я пытаюсь получить некоторую функциональность через реализации по умолчанию, которые я не могу прибить. Рассмотрим следующий код, который является упрощением того, что я пытаюсь сделать, но описывает проблему как можно проще. //protocol definition p…
3 ответа

Общий класс для автоматического создания конкретного класса

Есть ли способ взять интерфейс, скажем: /// <summary> /// Interface containing operators which operate on T /// </summary> public interface IScalarOperators<T> { // Adds two T objects IOperateScalar<T> OperatorAdd { get; } //…
21 окт '11 в 15:58
4 ответа

Может ли метод интерфейса иметь тело?

Я знаю, что интерфейс похож на 100% чистый абстрактный класс. Таким образом, в нем не может быть реализации метода. Но я увидел странный код. Кто-нибудь может это объяснить? Фрагмент кода: interface Whoa { public static void doStuff() { System.out.p…
28 мар '14 в 13:02