## 一、需求
今天一個“懶”程序員突然跑過來說:“反射好麻煩,我要提點需求。”
聽到這句話后我就知道,今天一定不好過了,奇葩需求又來了。
我們之前寫反射都是要這么寫:
~~~
public static <T> T create(HttpRequest httpRequest) {
Object httpRequestEntity = null;
try {
Class<T> httpRequestEntityCls = (Class<T>) Class.forName(HttpProcessor.PACKAGE_NAME + "." + HttpProcessor.CLASS_NAME);
Constructor con = httpRequestEntityCls.getConstructor(HttpRequest.class);
httpRequestEntity = con.newInstance(httpRequest);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return (T) httpRequestEntity;
}
~~~
因為反射在開發中很少用(做普通的業務開發的話),僅僅在自己寫一些框架和注解框架時會用到,所以對api總是不熟悉。每次用到api都要去網上查,查了后又得自己實驗下,很不爽。更差勁的是這樣寫法可讀性十分低下。我不希望這樣寫反射,我希望反射能像
~~~
String str = new String();
~~~
這樣簡單,**一行代碼搞定!**。
此外,有很多人都說反射影響性能,在開發的時候要避免用反射。那么什么時候該用反射,什么時候不用反射呢?用什么方式來避免反射呢?如果不明白**什么時候用反射**,就很難將反射活學活用了。