Class and generics
posted 15 years ago
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
Hello!
My goal is to create object by it's name using non-default constructor.
Let's consider the following simple "hello world" program to do this:
With Java 1.6 it works fine, but gives compile time warning:
Note: Hello.java uses unchecked or unsafe operation
Note: Recompile with -Xlint:unchecked for details.
I know the problem is with generics, specifically here: clazz.getDeclaredConstructor(new Class[] {java.lang.String.class}); But how should i change this line to avoid warning?
My goal is to create object by it's name using non-default constructor.
Let's consider the following simple "hello world" program to do this:
With Java 1.6 it works fine, but gives compile time warning:
Note: Hello.java uses unchecked or unsafe operation
Note: Recompile with -Xlint:unchecked for details.
I know the problem is with generics, specifically here: clazz.getDeclaredConstructor(new Class[] {java.lang.String.class}); But how should i change this line to avoid warning?
posted 15 years ago
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
Either use the compiler option or @SuppressWarnings("unchecked"). If you add the cast I think you'd get an unchecked cast warning, which means you'd have to do the same thing anyway. You could also make the clazz declaration generic and put the suppression there, and generify the Constructor init.
posted 15 years ago
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
You can do something like this, which compiles cleanly, with no annotations. It's really the Class.forName() which prevents you from doing this any other way.
posted 15 years ago
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
Oh; I like that better. (Although is the arg list <?> necessary?)
posted 15 years ago
No, I guess not -- I got carried away
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
David Newton wrote: (Although is the arg list <?> necessary?)
No, I guess not -- I got carried away
Andrey Kozhanov
Ranch Hand
Posts: 79
posted 15 years ago
Yup, it worked. Thanks a lot!
-
-
Number of slices to send:Optional 'thank-you' note:
-
-
Ernest Friedman-Hill wrote:You can do something like this, which compiles cleanly, with no annotations. It's really the Class.forName() which prevents you from doing this any other way.
Yup, it worked. Thanks a lot!
| I am displeased. You are no longer allowed to read this tiny ad: Paul Wheaton's 16th Kickstarter: Gardening playing cards for gardeners and homesteaders https://coderanch.com/t/889615/Paul-Wheaton-Kickstarter-Gardening-playing |








