我们在使用代码的时候,有很多便捷的操作,能够节约编写代码的效率和运行速度,也算是java中的小技巧,下面我们就带来展示。
1、获取要反射的方法
获取反射方法时,有两个方法,getMethod 和 getDeclaredMethod。
classClass{ @CallerSensitive publicMethodgetMethod(Stringname,Class<?>...parameterTypes) throwsNoSuchMethodException,SecurityException{ Objects.requireNonNull(name); SecurityManagersm=System.getSecurityManager(); if(sm!=null){ //1.检查方法权限 checkMemberAccess(sm,Member.PUBLIC,Reflection.getCallerClass(),true); } //2.获取方法 Methodmethod=getMethod0(name,parameterTypes); if(method==null){ thrownewNoSuchMethodException(methodToString(name,parameterTypes)); } //3.返回方法的拷贝 returngetReflectionFactory().copyMethod(method); } @CallerSensitive publicMethodgetDeclaredMethod(Stringname,Class<?>...parameterTypes) throwsNoSuchMethodException,SecurityException{ Objects.requireNonNull(name); SecurityManagersm=System.getSecurityManager(); if(sm!=null){ //1.检查方法是权限 checkMemberAccess(sm,Member.DECLARED,Reflection.getCallerClass(),true); } //2.获取方法 Methodmethod=searchMethods(privateGetDeclaredMethods(false),name,parameterTypes); if(method==null){ thrownewNoSuchMethodException(methodToString(name,parameterTypes)); } //3.返回方法的拷贝 returngetReflectionFactory().copyMethod(method); } }
2、在Java5中,提供了for-each循环,从而简化了对数组和集合的循环。Fore-each循环允许您遍历数组而不需要保留传统for循环中的索引,也不需要在使用迭代器时调用while循环中的hasNext方法和next方法来遍历集合。
double[]values=...; for(doublevalue:values){ //TODO:处理value } List<Double>valueList=...; for(Doublevalue:valueList){ //TODO:处理value }
3、得到当前方法的名字
<spanstyle= "font-family:Arial;font-size:14px;" >StringmethodName=Thread.currentThread().getStackTrace()[ 1 ].getMethodName();</span>原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容