In IDEA it is annoying when you enable inspection 'Raw use of parametrized class' which is generally quite useful

it will complain on

protected boolean isPageAuthorized(final Class<? extends Page> pageClass)

so, no, you don't get a warning but a potentially useful inspection is more or less useless
(warnings have no effect once you get used to them)

Am 14.05.2008 um 22:29 schrieb Johan Compagner:

how do users get in this situation a warning?

if we as a framework say method(RawType type)
then why would that give a warning in the caller method?
We just say we accept raw type there

johan


On Wed, May 14, 2008 at 9:53 PM, Igor Vaynberg <[EMAIL PROTECTED] >
wrote:

then our users have to suppress warnings in their code, which is
unacceptable at least to me. the whole generics thing turned out to be
quiet a lot crappier then i thought it would.

-igor


On Wed, May 14, 2008 at 12:48 PM, Johan Compagner <[EMAIL PROTECTED] >
wrote:
yes then all the call to that method must be of a generic type.
cant be raw

i dont know what are we going to do in wicket i think we should decide it should we just where we dont care about generic delete/not use the <?>
and
then
supresswarning?

johan


On Wed, May 14, 2008 at 9:45 PM, Igor Vaynberg <[EMAIL PROTECTED] >
wrote:

so i just implemented IAuthorizationStrategy and on this line in my
class:

public boolean isInstantiationAuthorized(Class< ? extends Component>
componentClass)

i get: Component is a raw type. References to generic type
Component<T> should be parameterized

so that means we have to change our sig to <? extends Component<?>>
but then we are back to the problem described in this thread.

generics suck.

-igor

On Wed, May 14, 2008 at 12:12 AM, Johan Compagner <[EMAIL PROTECTED]

wrote:
I dont think that user gets a warning if a param is of raw type. But
we have a warning there.
The problem is that for example MarkupContainer.add(Component) or
IVisitor.visit(Component) i dont care what component is put in
generified or not.
In add it really doesnt matter because we dont do anything with it. With visitor it is different because the user could use it inside the method. But it should be useable without warnings for generified and
none generfied components..


On 5/14/08, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
if we have a signature that accepts a raw type, will that also cause
a
warning in user's code?

also having those suppress annotations practically _everywhere_ will
be
annoying

-igor


On Tue, May 13, 2008 at 11:56 PM, Johan Compagner <
[EMAIL PROTECTED]

wrote:
I dont care, because i cant do any thing with the ? The only thing
it
enforces is that it must now be a generic class which is annoying.
Not
to mention that in that area eclipse and javac accept different
things....

So or we in wicket dont use <?> any where and have supress warning everywhere for that or we do use it and then suddenly it is in my
eyes
restricted to much.



On 5/14/08, Sebastiaan van Erk <[EMAIL PROTECTED]> wrote:
Johan Compagner wrote:
yes thats the reason

you are calling the method add with a generified component but
that
container itself is not generified

i dont like this about generics expecially the onces like
this:

add(MarkupContainer<?> container)

then suddenly a none generified component cant be added...
thats really stupid <?> should mean anything.. including none
generics

No, that's not correct. For example, List<?> is much more
restrictive
than a raw List (which is a List<Object>). To a raw list you can
add an
instance of any type whatever, i.e., list.add(new Object()). But
in
List<?> the ? is a wildcard which says it could be any type
there,
i.e.,
it could be a List<Integer>. But you can't add a new Object() to
a
List<Integer>!

Thus MarkupContainer<?> means "MarkupContainer parameterized by
some
unknown type", and *not* MarkupContainer parameterized by
Object,
which
is what the raw type means.

Regards,
Sebastiaan

johan


On Tue, May 13, 2008 at 5:55 PM, Stefan Simik
<[EMAIL PROTECTED]>
wrote:

I have one idea,

the reason of the warnigs is, that parent of
AjaxPagingNavigator
is
PagingNavigator,
which has parent Panel ---> that is not parameterized.

The same problem is with LoopItem, which extends the
WebMarkupContainer ---> that is not parameterized.

? could this be the reason ?






Stefan Simik wrote:
Mhmm, it is meaningful ;) I will know in future, thx

One of the last occuring warning is, when working with
MarkupContainer#add(...)  or  #addOrReplace(...)  method.

Example:  I have a simple AjaxPagingNavigator, to which I
add a
simple
ListView


-----------------------------------------------------------------------
ListView<Integer> menu = new ListView<Integer>("id",
numbers){
   //....populate metods
}
add(menu);        //warning here

The warning says:
"Type safety: The method add(Component...) belongs to the
raw
type
MarkupContainer.
References to generic type MarkupContainer<T> should be
parameterized"

I cannot find out, what's the warning reason, because
ListView
self
is
parameterized.


--
View this message in context:




http://www.nabble.com/Using-generics-with-some-non-generic-classes-in-Wicket-tp17208928p17212015.html
Sent from the Wicket - User mailing list archive at
Nabble.com.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to