Не могли бы вы объяснить, почему вы хотите это сделать?Единственная причина, которую я вижу, состоит в том, чтобы сделать невозможным реализацию интерфейса для пользователя вашей библиотеки.
Не думаю, что это хороший подход.Просто добавьте Javadoc и объясните, почему его не имеет смысла реализовывать.Но, наконец, оставьте это на усмотрение пользователя, если есть веская причина для создания пользовательской реализации.Всегда трудно предвидеть каждый случай использования.
Если кто-то застрянет с его подходом, это, конечно, не ваша вина - он не может сказать, что его не предупредили:)
Дляприведите пример, это то, что вы можете найти по всему исходному коду Apache Wicket:
/**
* THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
*
* Traverses all behaviors and calls ...
*/
РЕДАКТИРОВАТЬ: просто еще один вариант: вы можете попробовать это, хотя я все еще не одобряю это, не говорите, что выне были предупреждены;)
public interface ExposedInterface {
void foo();
}
// only default visibility
interface InternalInterface extends ExposedInterface {
// nothing here
}
// and here some methods
ExposedInterface get(); // user can use it
void set(InternalInterface obj); // user is out of luck here