[
https://issues.apache.org/jira/browse/TEXT-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16042298#comment-16042298
]
ASF GitHub Bot commented on TEXT-80:
------------------------------------
Github user ameyjadiye commented on the issue:
https://github.com/apache/commons-text/pull/44
Hi @britter, there is no issue even in checkstyle with my changes, above
Travis build failed because there was some trailing space issue in master and
which you have already fixed. merging this will pass everything clean *OR* you
want me to do some dummy commit so Travis will trigger again and clear error
on this PR ? I don't think that's needed though.
> StrLookup API confusing
> -----------------------
>
> Key: TEXT-80
> URL: https://issues.apache.org/jira/browse/TEXT-80
> Project: Commons Text
> Issue Type: Bug
> Reporter: Etienne Neveu
> Fix For: 1.x
>
>
> [bayard: copying this from LANG-564]
> I don't see the point of having a generic type parameter on the StrLookup
> class, if it's not used anywhere. No method / field in StrLookup references
> this type parameter. IntelliJ IDEA itself reports a warning: "Type parameter
> 'V' is never used". Moreover, Java generics are not reified, so there is no
> reliable way to access the type parameter at runtime (and I don't see the
> point of doing that anyway...).
> While the Javadoc tries to clarify the purpose of a StrLookup, the unused
> type parameter is still confusing, and the client code has to un-necessarily
> specify type parameters. For example, I have to write:
> StrLookup<?> lookup = StrLookup.noneLookup();
> StrLookup<String> lookup2 = StrLookup.systemPropertiesLookup();
> StrLookup<Integer> lookup3 = StrLookup.mapLookup(integerMap);
> instead of
> StrLookup lookup = StrLookup.noneLookup();
> StrLookup lookup2 = StrLookup.systemPropertiesLookup();
> StrLookup lookup3 = StrLookup.mapLookup(integerMap);
> My best guess is that this type parameter was added when commons-lang was
> generified, because StringLookup.mapLookup() takes a generified Map. Doing
> this is not really needed, though: we could remove the <V> type parameter
> everywhere, and replace the StrLookup.mapLookup()'s Map<String, V> with a
> Map<String, ?> (which is the same as Map<String, ? extends Object>, but
> shorter).
> I guess it's too late to change this now, due to backward compatibility...
> But I thought I'd comment just in case it's still possible.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)