commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Feist (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COLLECTIONS-519) private constructors in utility classes break existing code
Date Thu, 01 May 2014 13:46:16 GMT

    [ https://issues.apache.org/jira/browse/COLLECTIONS-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13986581#comment-13986581
] 

Daniel Feist commented on COLLECTIONS-519:
------------------------------------------

Sebb,  You comments are valid, and in fact java takes this exact same approach with Collections,
Arrays to ensure they cannot be instantiated or extended.  I also agree that composition/delegation
is an valid alternative (albeit more verbose) way of extending these Util classes to achieve
the use case described above.
 
What I don't like about using this In this particular case, is that it's completely inconsistent
with rest of commons i.e. IOUtils, BooleanUtils etc.

> private constructors in utility classes break existing code
> -----------------------------------------------------------
>
>                 Key: COLLECTIONS-519
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-519
>             Project: Commons Collections
>          Issue Type: Bug
>    Affects Versions: 4.x
>            Reporter: Radoslav Paskalev
>             Fix For: 4.1
>
>
> Hello,
> In collections version 4.x all utility classes (example ListUtils, MapUtils, PredicateUtils....)
have private constructors. I consider this to be a serious bug, as it breaks any possibility
the classes to be extended by the users.  The javadoc says that constructors are private in
order to prevent class instantiation but this object instantiation is not really problem and
i think it is more important to allow classes to be extended. The possibility to extend utility
classes was one of the major selling points of commons.lang and commons.collections projects.
In the latest commons.lang project the utility classes still have public constructors.
> Best Regards



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message