-
setAccessible(true)用法及意义
2020-02-04 21:26:17实际开发中,setAccessible具体的用处主要有两处: 作用于方法上,method.setAccessible(true); public static void test02() throws Exception{ User u = new User(); Class clazz = u.getClass(); Method...实际开发中,setAccessible具体的用处主要有两处:
作用于方法上,method.setAccessible(true);
public static void test02() throws Exception{ User u = new User(); Class clazz = u.getClass(); Method m = clazz.getDeclaredMethod("getUname", null); m.setAccessible(true); m.invoke(u, null); }
作用于属性上,field.setAccessible(true);
if (field.isAnnotationPresent(TestIdSign.class)){ try { field.setAccessible(true); field.set(object,testId); } catch (IllegalAccessException e) { throw new RuntimeException("set testID illegalAccessException",e); } }
将此对象的 accessible 标志设置为指示的布尔值。值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查;实际上setAccessible是启用和禁用访问安全检查的开关,并不是为true就能访问为false就不能访问 ;
由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的
如下例子:参考(http://huoyanyanyi10.iteye.com/blog/1317614)
package com.chenshuyi.test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method m = A.class.getDeclaredMethod("getName", new Class[] {}); System.out.println(m.isAccessible()); // getName是public的,猜猜输出是true还是false A a = new A(); a.setName("Mr Lee"); long start = System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { m.invoke(a, new Object[] {}); } System.out.println("Simple :" + (System.currentTimeMillis() - start)); m.setAccessible(true); // 注意此处不同 long start1 = System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { m.invoke(a, new Object[] {}); } System.out.println("setAccessible(true) :" + (System.currentTimeMillis() - start1)); } } class A { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试结果
false
Simple :4969
setAccessible(true) :250
明显 Accessible并不是标识方法能否访问的. public的方法 Accessible仍为false;使用了method.setAccessible(true)后 性能有了20倍的提升;
Accessable属性是继承自AccessibleObject 类. 功能是启用或禁用安全检查 ; -
struts2中的struts.enable.DynamicMethodInvocation = true 的用法
2012-06-02 15:50:08struts2中的struts.enable.DynamicMethodInvocation = true 的用法 很多网站都说的很简单 就是关闭动态方法调用 具体点应该如下: 其实在url里我们可以这样访问 http://localhost:8080/exam/login!...struts2中的struts.enable.DynamicMethodInvocation = true 的用法 很多网站都说的很简单 就是关闭动态方法调用
具体点应该如下:
其实在url里我们可以这样访问
http://localhost:8080/exam/login!checkLogin.action
login!checkLogin login是我的struts.properties配置文件中的一个action的名字 而checkLogin是这个action类里的一个方法。
我们可以使用action名 + 感叹号 + 方法名进行方法调用 这个在开发阶段开启可以加速我们开发人员的开发调试,但是在项目完成时还是设为false的好。毕竟直接访问类的方法是不安全的。
至于xml中的通配符(*)在设为 false时还是可以用的 -
Toolkit.getImage的具体用法
2019-01-02 17:51:23pintu1.setVisible(true); } public PicPanel(Image img,JLabel statusText) { this.statusText=statusText; setBackground(Color.white); m_sImgName = "pintu.jpg"; MediaTracker ... -
详细介绍jQuery.outerWidth() 函数具体用法
2021-01-19 19:36:14你也可以指定参数为true,以包括外边距(margin)部分的宽度。如下图: 如果你要获取其它情况的宽度,请使用width()和innerWidth(),你可以点此查看三者之间的区别。该函数属于jQuery对象(实例),并且对不可见的元素... -
标签的具体用法(附示例)
2020-07-23 20:26:03相当于一个嵌套标签,将需要显示的htm文件放到其中可以显示,以下是标签的一些用法 2.这里先定义一个标签将>至于其中 <div class="main"> <iframe name="right" id="rightMain" src="welcome....- 相当于一个嵌套标签,将需要显示的htm文件放到其中可以显示,以下是标签的一些用法
2.这里先定义一个div标签将frame至于其中
<div class="main"> <iframe name="right" id="rightMain" src="welcome.html" frameborder="no" scrolling="auto" width="100%" height="auto" allowtransparency="true"></iframe> </div>
3.
<li><a href="javascript:void(0)" onclick="showpage(this,'admin.html')">添加管理员</a></li> <li><a href="javascript:void(0)" onclick="showpage(this,'view_admin.html')">管理员信息</a></li> <li><a href="javascript:void(0)" onclick="showpage(this,'user.html')">会员信息</a></li>
设置
4.showpage()方法如下,此处用的jquery方式调用方法
function showpage(obj,page){ $("#rightMain").attr("src",page); }
既将id为“rightMain’ 的标签中的src设为传进来的的page,即要显示的html文件
一开始中的src=“welcome.html",显示欢迎界面如下
点击添加管理员后,触发showpage方法,将中的src转换成admin.html,右边显示admin.html页面,左边不变
-
JSP专用taglib的具体用法
2011-08-29 16:12:50<%@ taglib prefix="c" uri="... %> 一般用途的标签: [转贴] 1.&...c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/> 有Bod...<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
一般用途的标签: [转贴]
1.<c:out>没有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>
有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”]>这里是Body部分</c:out>名字 类型 描述value Object 将要输出的表达式escapeXml boolean 确定以下字符:<,>,&,’,”在字符串中是否被除数,默认为truedefault Object 如果vaule计算后的结果是null,那么输出这个默认值
2.<c:set>这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的 javabean对象的属性。他类似于<%request.setAttrbute(“name”,”value”);%>
语法1:使用value属性设定一个特定范围中的属性。<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”]/>
语法2:使用value属性设定一个特定范围中的属性,并带有一个Body。<c:set var=”varName” [scope=”{page|request|session|application}”]>Body部分</c:set>
语法3:设置某个特定对象的一个属性。<c:set value=”value” target=”target” property=”propertyName”/>
语法4:设置某个特定对象的一个属性,并带有一个Body。<c:set target=”target” property=”propertyName”>Body部分</c:set>名字 类型 描述value Object 将要计算的表到式。var String 用于表示value 值的属性,如果要在其他标签中使用,就是通过这 个var指定的值来进行的。
它相当于在标签定义了一个变量,并且这个变量只能在标签中的一个。scope String var的有效范围,可以是page|request|session|application中的一个target String 将要设置属性的对象,它必须是javabean或则java.util.Map对象property Object 待设定的Target对象中的属性名字,比如在javabean中有个name属性,提供了setUserId方法,那么这里填userId。
3.<c:remove><c:remove var=”varName” [scope=”{page|request|session|application}”]/>
4.<c:catch>这个标签相当于捕获在它里边的标签抛出的异常对象<c:catch [var=”varName”]> //var是异常的名字内容</c:catch>条件标签
1. <c:if>
语法1:无Body情况<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]/>
语法2:有Body的情况<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]>Body内容</c:if>名字 类型 描述test Boolean 表达式的条件,相当于if()中的条件判断语句。var String 表示这个语句的名字。scope String var这个变量的作用范围。2.<c:choose>
语法:<c:choose>Body内容(<c:when>和<c:otherwise>子标签)</c:choose>注意:它的Body只能由以下元素组成:1) 空格2) 0或多个<c:when>子标签,<c:when>必须在<c:otherwise>标签之前出现.3) 0个或多个<c:otherwise>子标签。
3.<c:when>代表的是<c:choose>的一个条件分支,只能在<c:choose>中使用语法:<c:when test=”testCondition”> //test是boolean类型,用于判断条件真假Body语句</c:when>
4.<c:otherwise>代表的是<c:choose>中的最后选择。必须在最后出现<c:otherwise>内容</c:otherwise>
迭代标签
1.<c:forEach>
语法1:在Collection中迭代<c:forEach[var=”varName”] items=”collection” [varStatus=”varStatusName”][begin=”begin”] [end=”end”] [step=”step”]Body内容</c:foeEach>
语法2:迭代固定的次数.<c:forEach [var=”varName”] [varStatus=”varStatusName”][begin=”begin”] [end=”end”] [step=”step”]Body内容</c:foeEach>名字 类型 描述var String 迭代的参数,它是标签参数,在其他标签中通过它来引用这个标签中的内容。Items Collection、ArrayList、 要迭代的items集合.Iterator、Map、String、Eunmeration等VarStatus String 表示迭代的状态,可以访问迭代自身的信息Begin int 表示开始迭代的位置。End int 表示结束迭代的位置。Step int 表示迭代移动的步长,默认为1。
URL相关的标签
1.<c:import>
语法1:资源的内容使用String对象向外暴露<c:import url=”url” [context=”context”][var=”varName”] [scope=”{page|request|session|application}”] [charEncoding=”charEncoding”]>内容</c:import>
语法2:资源的内容使用Reader对象向外暴露。<c:import url=”url” [context=”context”]varReader=”varReaderName” [charEncoding=”charEncoding”]>内容</c:import>名字 类型 描述url String 待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源context String 当使用相对路径访问外部context资源时,context指定了这个资源的名字。var String 参数的名字。scope String var参数的作用范围。cahrEncoding String 输入资源的字符编码。varReader String 这个参数的类型是Reader,用于读取资源。
2.<c:redirct>
语法1:没有Body的情况.<c:redirect url=”value” [context=”context”]/>
语法2:有Body情况下,在Body中指定查询的参数<c:redirect url=”value” [context=”context”]><c:param name=”name” value=”value”/></c:redirect>
-
python中and or not的优先级_python中not、and和or的优先级与具体用法简介
2020-12-09 12:42:23前言(小白专用)本次所共享的是Python中的not、and、or的执行时的优先级,以及他们的详细用法。本文比较具体,不喜勿喷。一、not、and、or的含义以及优先级对象返回结果优先顺序not xif x is false,then True,else ... -
python false用法_Python中的True,False条件判断实例分析
2021-03-04 10:20:25本文实例讲述了Python中的True,False条件判断用法。分享给大家供大家参考。具体分析如下:对于有编程经验的程序员们都知道条件语句的写法:以C++为例:代码如下:if (condition){doSomething();}对于Python中的条件... -
关于ajax的用法,具体怎么用
2015-01-09 06:16:52``` $.ajax({ type: "POST", async: false, ... url: "() %>/apps/productRemedy/authorizeConfig!... data: {authorizeId:authorizeId,remedyPrice:remedyPrice,...这是什么用法啊 -
lombok用法
2019-10-15 00:30:41文章目录@Accessors用法lombok具体使用 @Accessors用法 生成set、get方法 @Data @Accessors(chain = true) public class TestSearchVo { } 具体用法 lombok具体使用 地址 -
python3:yield的send用法及具体事项
2019-02-17 16:21:47def func1(): for i in range(10): print('-----1-----') ret = yield i print('\n-----2-----') print('ret:', ret) print('-----3-----') f = func1() while True... -
Thinkphp3.2中controller控制器根据curl函数请求接口数据及curl具体函数用法
2017-05-24 10:10:36public function user(){ $url="接口路径"; $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, ... -
Python-常用数据类型及其用法汇总(全面、详细、具体、明了)
2020-06-26 23:15:10True,False(and(与),or(或),not(取反)) (注意首字母大写!) 空值: None (tuple)元组: students=("jim","jack","rose","lina")# 用小括号括起,元组不可被修改 print(students) for s i -
python中and not的用法-python中not的用法
2020-11-11 13:55:22python中的not具体表示是什么:在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法:(1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,... -
json用法 python_python JSON 用法
2020-12-08 11:17:42JSON 模块【官方文档】http://www.ziqiangxuetang.com/python/python-json.html1. 从python原始类型向json类型的转换过程,具体的转换如下:import jsonjson.dump(obj, fp, skipkeys=False,ensure_ascii=True,... -
EXITS用法
2021-04-02 19:11:38结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。 NOT EXISTS 的作用与 EXISTS 正好相反 执行效率 EXISTS与IN使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看... -
if not在python中的用法_python中not的用法
2020-12-02 20:53:19python中的not具体表示是什么:在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法:(1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,... -
GridSplitter用法
2016-02-23 11:03:001.GridSplitter的ShowsPreview设置为True时拖动报null错误 ...2.当ShowsPreview设置为True时,可以设置鼠标拖动的时候动态效果,具体方法是设置PreviewStyle 另外这个PreviewStyle的TargetType只针对Control的,因... -
vue.set( target, key, value ) this.$set(对象获数组,要更改的具体数据,重新赋值)用法...
2021-02-04 20:16:34value )target:要更改的数据源(可以是对象或者数组)key:要更改的具体数据value :重新赋的值具体用法js代码://设置初始状态和值let j = { id: 0, "progressTime": "", "progressContent": "", "isSet": true, "_... -
python中管道用法入门_python中管道用法入门实例
2021-03-17 19:29:14本文实例讲述了python中管道用法。分享给大家供大家参考。具体如下:#!coding=utf-8import multiprocessingdef consumer(pipe):output_p , input_p = pipeinput_p.close() #关闭管道的输入端while True:try:item = ... -
WinForm项目开发中WebBrowser用法实例汇总
2021-01-21 18:32:12本文实例汇总了WinForm项目开发中WebBrowser用法,希望对大家项目开发中使用WebBrowser起到一定的帮助,具体用法如下: 1. [PermissionSet(SecurityAction.Demand, Name = FullTrust)] [ComVisibleAttribute(true)]... -
javascript中in运算符用法分析
2020-12-12 17:18:15本文实例讲述了javascript中in运算符用法。分享给大家供大家参考。具体分析如下: in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的右操作数是一个对象;如果右侧对象拥有一个名为左操作数值的... -
python中output用法_Python中subprocess模块用法实例详解
2020-12-08 06:30:15本文实例讲述了Python中subprocess模块用法。分享给大家供大家参考。具体如下:执行命令:>>> subprocess.call(["ls", "-l"])0>>> subprocess.call("exit 1", shell=True)1测试调用系统中cmd命令,... -
python中not的用法
2020-01-20 15:37:12在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法: (1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句。比如: ... -
php中define用法实例
2021-01-21 16:03:03具体如下: <?php /* * define * */ /*第3个参数: * false -- 对大小写敏感(默认) * true -- 对大小写不敏感 * */ define(pai,3.14); define (name,LiLei,true); function testfor($x) { for($a=$x... -
python not用法_python中not、and和or的优先级与详细用法介绍
2020-12-23 08:54:55前言(小白专用)本次所分享的是python中的not、and、or的执行时的优先级,以及他们的具体用法。本文比较详细,不喜勿喷。一、not、and、or的含义以及优先级对象返回结果优先顺序not xif x is false,then true,else ... -
Grid用法
2011-10-20 13:42:00属性表格——PropertyGrid(只要两个值:key和value,即:列的名称和具体的值) var grid = new Ext.grid.PropertyGrid({ title: '属性表格', autoHeight: true, width: 300, renderTo: 'grid', sou... -
python func函数用法_Python常见内置高效率函数用法示例
2020-12-07 16:37:03本文实例讲述了Python常见内置高效率函数用法。分享给大家供大家参考,具体如下:1. filter(function,sequence)将sequence中的每个元素,依次传进function函数(可以自定义,返回的结果是True或者False)筛选,返回... -
python type用法_基础教程:python isinstance与type函数用法
2021-01-28 19:20:16这两个函数有意义用法差不多,都是查看对象的,但是两者之间也有一定区别,具体内容请看下文~两者区别:type()是一个内置函数,可以用来查询变量所指的对象类型isinstance()是用来判断该变量是否为某种数据类型关于...