[OmniFaces utilities] The
findMethod() finds a method based on the method name, amount of parameters and limited typing, if necessary prefixed with "get". Note that this supports overloading, but a limited one. Given an actual parameter of type Long, this will select a method accepting Number when the choice is between Number and a non-compatible type like String. However, it will NOT select the best match if the choice is between Number and Long.Starting withOmniFaces 2.3 this method was improve to find superclass private methods too.
Method:
| OmniFaces 2.3 | OmniFaces 2.0 |
Let's
suppose that we have a simple bean (BookBean) that
contains the below two methods:
public void
addNewBook(String name, Long isbn, Double price){
// ...
}
public void
addNewBook(String name, String isbn, String price){
// ...
}
Now, let's
see three examples of finding these methods using Reflection#findMethod():
import
org.omnifaces.util.Reflection;
...
Object[]
paramsA={"", 0L, 0d};
Object[]
paramsB={"", "0", "0"};
Object[]
paramsC={"", 0, 0};
BookBean
bookBean = new BookBean();
// finds: public
void
book.beans.BookBean.addNewBook(java.lang.String,java.lang.Long,java.lang.Double)
Method methodA =
Reflection.findMethod(bookBean, "addNewBook", paramsA);
// finds: public
void
book.beans.BookBean.addNewBook(java.lang.String,java.lang.String,java.lang.String)
Method methodB =
Reflection.findMethod(bookBean, "addNewBook", paramsB);
// finds:
null
Method methodC =
Reflection.findMethod(bookBean, "addNewBook", paramsC);






Arrays
Converters

JSF 2 Tutorials at www.mkyong.com
JavaServer Faces (JSF) Tutorial 


















Niciun comentariu :
Trimiteți un comentariu