dbutils下QueryRunner.java 的一段代碼:java
package org.apache.commons.dbutils; public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh) throws SQLException { return this.query(conn, false, sql, rsh, (Object[])null); }
試題:sql
public class TestClass { public static void main(String[] args) { ((TestClass)null).testMethod(); } private static void testMethod(){ System.out.println("testMethod"); } }
運行正常,輸出testMethodapache
null能夠被強制類型轉換成任意類型的對象,經過這樣的方式能夠執行對象的靜態方法,但若是方法不是靜態方法的話,因爲null對象並無被實例化(分配空間),於是運行時會報空指針錯誤。this
總結:
1: null能夠轉化爲任何類型
2: private 只是權限聲明
2:static靜態關鍵字 僅僅意味着能夠不用實例化這個類
經過類名.方法名就能夠訪問
固然也能夠經過實例化類的對象後 經過對象.方法名
可是不能經過this關鍵字,由於this是指本實例中的方法,被static聲明的方法屬於類的方法指針