Solved

java reflection element to a list by using reflection

Posted on 2014-02-26
10
938 Views
Last Modified: 2014-04-03
Hi,

I am reading below link
http://tutorials.jenkov.com/java-reflection/index.html

I have not clearly understood about below lines
For instance, when mapping objects to tables in a database at runtime, like Butterfly Persistence does. Or, when mapping the statements in a script language to method calls on real objects at runtime, like Butterfly Container does when parsing its configuration scripts.



Is java reflection only from j2se6 onwards. Where to find which version has which new features at a glance and their simple explanation.

How is propertyutils used in reflection  in adding element to a list by using reflection. http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/PropertyUtils.html#getPropertyDescriptor(java.lang.Object

Any detailed example on that.

I also referred below link
http://stackoverflow.com/questions/37628/what-is-reflection-and-why-is-it-useful

I did not understand below statements
va's static typing system isn't really designed to support this unless the object conforms to a known interface, but using reflection, your code can look at the object and find out if it has a method called 'doSomething' and then call it if you want to.

So, to give you a code example of this in Java (imagine the object in question is foo) :

Method method = foo.getClass().getMethod("doSomething", null);
method.invoke(foo, null);One very common use case in Java is the usage with annotations. JUnit 4, for example, will use reflection to look through your classes for methods tagged with the @Test annotation, and will then call them when running the unit test.


please advise
Any links resources ideas highly appreciated. Thanks in advance
0
Comment
Question by:gudii9
  • 6
  • 4
10 Comments
 
LVL 14

Accepted Solution

by:
CPColin earned 500 total points
Comment Utility
Is java reflection only from j2se6 onwards.

Java has had reflection since its very first version. New features that have been added since the first version have a "Since:" field in their Javadocs. For example, Method.getTypeParameters() was added in Java 5, to support generics.

How is propertyutils used in reflection  in adding element to a list by using reflection.

I'm not sure PropertyUtils is related to lists, but I could be misunderstanding your question.

I did not understand below statements

I can't think of a well-designed piece of code where developers would need reflection to see if a method with a certain name were present. There could be a time where one would need to call a static method in a class, without knowing the exact class name ahead of time, but that's pretty loose design and I've never liked it much.

Using reflection for debugging and testing, as JUnit does, is a pretty nice benefit, because the code doing the hard work can stay contained in your JUnit tests, instead of polluting your main code.
0
 
LVL 7

Author Comment

by:gudii9
Comment Utility
I did not get what it mean by 'knowing object information at runtime' can you please explain what and why and how, when we do it.
0
 
LVL 14

Expert Comment

by:CPColin
Comment Utility
When you're developing code, you can see all the methods and variables that are available in classes you're using. Like, you know that the method String.trim() is available to you when you're working with an instance of the String class.

Reflection is used when your code does not know what kind of objects it's working with. This happens when the type of object your code has to work with is determined at runtime. This especially happens when writing libraries.

You're usually safer when you design your code in a way that avoids reflection, for the most part. Basically, unless you're forced to use it, try not to.
0
 
LVL 7

Author Comment

by:gudii9
Comment Utility
Reflection is used when your code does not know what kind of objects it's working with. This happens when the type of object your code has to work with is determined at runtime. This especially happens when writing libraries.

What would be scenario when to use this in practical world. I do not write libraries.

I see code as below

    PropertyUtils.getPropertyDescriptor(obj, fieldName).getWriteMethod().invoke(obj, list);

What is the meaning of above code while parsing a text document which has not only primitives but also list kind of objects before sending to one other system.
please advise
0
 
LVL 14

Expert Comment

by:CPColin
Comment Utility
What would be scenario when to use this in practical world. I do not write libraries.

I mentioned this already in my previous comment. You would use reflection when you don't know what kind of object you're dealing with until your code actually runs. If you have no situations in your code where that applies, then you don't need reflection.

What is the meaning of above code...

You will have to read the Javadocs for that class; I am not very familiar with it. You may also want to take that part of the discussion over to your "PropertyUtils java" question.
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 7

Author Comment

by:gudii9
Comment Utility
What are these ButerFly Component and ButterFly Persistence mentioned in the link. Please advise
0
 
LVL 7

Author Comment

by:gudii9
Comment Utility
How the reflection on class, method, field are different. Please advise
0
 
LVL 7

Author Comment

by:gudii9
Comment Utility
Any practical example to understand this reflection concept end to end better with set up on eclipse. please advise
0
 
LVL 7

Author Comment

by:gudii9
Comment Utility
Using reflection for debugging and testing, as JUnit does, is a pretty nice benefit, because the code doing the hard work can stay contained in your JUnit tests, instead of polluting your main code.

Can you please elaborate on this.
0
 
LVL 14

Expert Comment

by:CPColin
Comment Utility
Not really. I made that comment over a month ago and I no longer remember what I was talking about. In general, 99.9% of code does not need reflection. If you're not sure if you need it, you probably don't.

If you have a specific question about reflection, I'll try to answer it.
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
sumHeights  challenge 17 59
java set up 1 45
Starting to learn JAVA, 7 47
Java array passed to SQL where clause 23 39
For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
The viewer will learn how to implement Singleton Design Pattern in Java.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now