[ 
https://issues.apache.org/jira/browse/LUCENE-1989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uwe Schindler updated LUCENE-1989:
----------------------------------

    Attachment: LUCENE-1989.patch

This is the only possibility to make it somehow genericfied. As all Object 
subclasses (so everything) contains a toString() method it is no longer a 
problem to add any object that has a valid String representation to this set.

It is only strange that the iterator returns Strings and not char[] - why is 
this so. To fix this, there is also an accessor to get an Iterator<String> 
correctly casted.

> CharArraySet cannot be made generic, because it violates the Set<char[]> 
> interface
> ----------------------------------------------------------------------------------
>
>                 Key: LUCENE-1989
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1989
>             Project: Lucene - Java
>          Issue Type: Bug
>    Affects Versions: 2.9
>            Reporter: Uwe Schindler
>             Fix For: 3.0
>
>         Attachments: LUCENE-1989.patch
>
>
> I tried to make CharArraySet using generics (extends AbstractSet<char[]>) but 
> this is not possible, as it e.g. returns sometimes String instances in the 
> Iterator instead of []. Also its addAll method accepts both String and 
> char[]. I think this class is a complete mis-design and violates almost 
> everything (sorry).
> What to do? Make it Set<?> or just place a big @SuppressWarnings("unchecked"> 
> in front of it?
> Because of this problem also a lot of Set declarations inside StopAnalyzer 
> cannot be made generic as you never know whats inside.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to