System.getProperty(“java.version”)vs Class.forName fallback

时间:2014-09-15 19:13:36

标签: java

获取Java版本有不同的方法。一个是查看系统属性,但有一个查看可用的类。

try {                                             
// 1.0                                           
version = 10;                                    

Class.forName("java.lang.Void");                 
// 1.1                                           
version++;                                       

Class.forName("java.lang.ThreadLocal");          
// 1.2                                           
version++;                                       

Class.forName("java.lang.StrictMath");           
// 1.3                                           
version++;                                       

Class.forName("java.lang.CharSequence");         
//1.4                                            
version++;                                       

Class.forName("java.net.Proxy");                 
// 1.5                                           
version++;                                       

Class.forName("java.net.CookieStore");           
// 1.6                                           
version++;                                       

Class.forName("java.nio.file.FileSystem");       
// 1.7                                           
version++;                                       

Class.forName("java.lang.reflect.Executable");   
// 1.8                                           
version++;                                       
} catch (Throwable t) {                           
}                   

我对一个人的效率感兴趣。谁有人评论?

2 个答案:

答案 0 :(得分:1)

  

我对一个人的效率感兴趣。谁有人评论?

当然,从属性中直接读取更快更直接&自我维护

答案 1 :(得分:0)

在实践中,你的第二种方法不是有效的"一点都不如果您从属性中找到版本,请使用它。