- java 为什么要get,set方法
angen2018
javajava
为什么要get,set方法,前提是属性用private修饰*为什么要get,set方法*是为了提高安全性,过滤输入和输出*例如我年龄只能是0到120岁,但是用户可能会输入130岁*那么这个数据不是我想要的*那么通过set方法就可以过滤publicclassStudent{//属性privateStringname;privateintage;publicStringgetName(){return
- C#中get和set方法
踹断瘸子那条好腿.
c#java开发语言
在C#中,get和set是属性(Property)的访问器(Accessor)。它们用于控制对属性的读取和写入操作。当您定义一个属性时,可以使用get和set关键字定义属性的访问器。以下是属性的基本结构,包括get和set访问器:publicclassMyClass{ privateintmyField;//私有字段 //属性 publicintMyProperty { get {
- java的四个层级结构
活跃家族
JAVA
java的四个层级结构首先,最底层的就是dto层,dto层就是所谓的model,dto中定义的是实体类,也就是.class文件,该文件中包含实体类的属性和对应属性的get、set方法;其次,是dao层(dao层的文件习惯以*Mapper命名),dao层会调用dto层,dao层中会定义实际使用到的方法,比如增删改查。一般在dao层下还会有个叫做sqlmap的包,该包下有xml文件,文件内容正是根据之
- php魔术方法及其意义
smallThree1
PHP提供了很多魔术方法,记录一下其中比较重要的几个1.__get和__set在对象调用不存在的属性时会去自动调用__get方法在对象赋值不存在的属性或者权限不够的属性时会自动调用__set方法2.__call和__callStatic在对象调用不存在的或者权限不够的方法时会调用此类方法3.__toString在将对象作为字符串输出时会调用(例如echo$obj)4.__invoke在将对象作为函
- 【关于如何调用java的private成员变量】
haozihua
java
packagepg2;classStudent{privateStringname;//设置私有成员变量,只能在本类使用privateintage;publicvoidSetname(Stringname){//set方法不需要返回值,只需要存在栈内存中this.name=name;}publicStringGetname(){//get方法需要返回值,用于其他类调用私有成员变量returnnam
- 客户信息管理软件(集合版)
*共清欢*
Java基础java开发语言后端
当当当~~~~~~欢迎大家阅读,接下来我们一起来看集合版的客户信息管理软件一、编写思路(一)首先定义一个客户类1:定义变量2:构造方法3:get/set方法(二)其次编写客户管理类1:定义一个main方法(1)用输出语句完成主界面的编写(2)用Scanner实现键盘录入数据(3)用switch语句完成操作的选择(4)用循环完成再次回到主界面2:定义一个方法,用于添加客户信息(1)键盘录入客户对象所
- 设计模式:责任链模式使用
文晓武
架构设计责任链模式java开发语言
责任链模式怎么使用呢?一个接口或者抽象类每个对象差异化处理对象链(数组)初始化(连起来)2.3.1一个接口或者抽象类这个接口或者抽象类,需要:有一个指向责任下一个对象的属性一个设置下一个对象的set方法给子类对象差异化实现的方法(如以下代码的doFilter方法)/** * 关注公众号:捡田螺的小男孩 */public abstract class AbstractHandler { //
- 深入理解 `ThreadLocal` 的 `set` 和 `get` 方法
CodeDunkster
javajvm开发语言
ThreadLocal类在Java并发编程中非常有用,它允许每个线程拥有自己独立的变量副本。本文将详细讲解ThreadLocal的set和get方法的工作原理,并通过示例代码说明线程如何使用多个ThreadLocal实例。ThreadLocal的set和get方法原理set方法ThreadLocal的set方法用于将值存储到当前线程的ThreadLocalMap中。其主要步骤如下:获取当前线程:s
- 9、Django Admin优化查询
背着吉他去流浪
DjangoAdminpython开发语言
如果你的Admin后台中有很多计算字段,那么你需要对每个对象运行多个查询,这会使你的Admin后台变得非常慢。要解决此问题,你可以重写管理模型中的get_queryset方法使用annotate聚合函数来计算相关的字段。以下示例为Origin模型的中ModelAdmin管理模型:@admin.register(Origin)classOriginAdmin(admin.ModelAdmin):
- Spring 常用注解
Simon_Zz
1声明bean的注解@Component组件,没有明确的角色@Service在业务逻辑层使用(service层)@Repository数据访问层使用(dao层)@Controller在展现层使用(控制器的声明)2注入bean的注解@Autowired:由Spring提供@Inject:由JSR-330提供JSR330@Resource:由JSR-250提供自我百度可以注解到set方法和属性上3配置
- 二叉树专题刷题
MogulNemenis
深度优先算法二叉树
二叉树的层平均值题目637.二叉树的层平均值-力扣(LeetCode)解题思路使用三个集合,sums集合存储每层的总和,count集合存储每层的节点数,averages存储每层的平均值。这里要讲一下add方法和set方法的区别add方法:用于向集合的末尾插入新的元素,是List接口中最常用的插入方法set方法:本质上是一种替换操作,要设置某个位置上的元素,这个位置必须已存在,否则会抛出异常代码pu
- Java大文件上传方案(vue+饿了么):秒传、断点续传、分片上传!
无与丶伦比丨
java开发语言
前言本篇文章是基于其他文章的基础上结合自己的理解写出来的,如果哪里有问题请指出!详细教程秒传1、什么是秒传通俗的说,你把要上传的东西上传,服务器会先做MD5校验,如果服务器上有它就会进入秒传,想要不秒传,其实只要让MD5改变,就是对文件本身做一下修改(改名字不行),例如一个文本文件,你多加几个字,MD5就变了,就不会秒传了.2、本文实现的秒传核心逻辑a、利用redis的set方法存放文件上传状态,
- 运用ES6Set方法求交集并集差集
丶帆
javascriptes6
Set方法Set构造函数能让你创建Set对象,其可以存储任意类型的唯一值,无论是primitivevalues或者对象引用。创建set集合newSet([xxx])如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的Set中。consts1=newSet([1,2,3,4,5,6,7,3,6])console.log(s1)如果不指定此参数或其值为null,则新的Set为空。如果存放的是原始
- spring入门aop和ioc
eqa11
springjava后端
文章目录spring分层架构表现层服务层(业务层)持久层spring核心ioc(控制反转)1)**接下来是代码示例:**2)**ioc容器的使用过程**3)ioc中的bean管理4)实例化bean的三种方式aop(面向切面开发)定义优势AOP底层原理AOP相关的术语AOP入门aop注解开发aop纯注解开发Di(依赖注入)1)属性的set方法注入值的方式2)构造方法赋值的方法多配置文件多配置文件sp
- 面向对象——封装
小涛阿
java开发语言
文章目录封装概述:private关键字Getter和Setter变量访问原则和this关键字构造方法构造方法概述构造方法的注意事项构造方法和set方法的比较静态静态概述:无静态代码示例:有静态代码示例:静态变量的特点静态访问的注意事项静态变量和非静态变量的区别工具类工具类的编写封装概述:1、封装:隐藏事物的属性和实现细节,对外提供公共的访问方式。2、封装的好处:隐藏了事物的实现细节提高了代码的复用
- Python生成JMeter测试脚本----响应断言和查看结果树
可遇_不可求
pythonjmeter开发语言
前言之前的文章写了怎么用python生成JMeter脚本,生成了测试计划、线程组、Http监听器组件,详细内容查看文章《Python生成JMeter测试脚本》。本篇内容接着讲怎么用python生成响应断言和查看结果树组件。响应断言响应断言的测试字段和模型匹配规则,在代码中已经注释了,对应着JMeterGUI工具的操作。首先使用set方法修改响应断言的参数,然后使用get方法生成响应断言组件,将组件
- Python生成JMeter测试脚本----HTTP信息头管理器和用户定义的变量
可遇_不可求
pythonjmeterhttp
前言之前的文章写了怎么用python生成JMeter脚本,生成了测试计划、线程组、Http监听器组件、响应断言、查看结果树、汇总报告、聚合报告、响应时间图。本篇内容接着讲怎么用python生成HTTP信息头管理器和用户定义的变量组件。HTTP信息头管理器信息头管理器的内容比较简单,主要包括了名称,注释和请求头参数。使用set方法设置好参数后,用get方法生成组件。importxml.etree.E
- Java重修笔记 第二十九天 枚举类
Super Minion
笔记
枚举类1.定义:枚举属于一种特殊的类,里面只包含一组有限的特定的对象,枚举对象通常为只读,不能修改。枚举对象名通常为大写,静态不可修改。2.运用场景:需要特定对象的场景,例如四季只有春夏秋冬,那么季节类只能创建这四个对象。自定义枚举类1.自定义枚举类首先要把构造器私有化不让随便创建对象2.将对象以静态成员的形式创建出来,对外暴露出来方便以后调用3.不提供set方法,因为枚举对象通常为只读publi
- Python生成JMeter测试脚本----汇总报告、聚合报告、响应时间图
可遇_不可求
pythonjmeter开发语言
前言之前的文章写了怎么用python生成JMeter脚本,生成了测试计划、线程组、Http监听器、响应断言、查看结果树,详细内容可以去主页查看之前的文章。本篇内容接着讲怎么用python生成汇总报告、聚合报告和相应时间图组件。汇总报告汇总报告的格式与查看结果树的格式类似,所以代码大体与查看结果树一样,同样使用set方法修改汇总报告组件的参数,然后用get方法生成组件。importxml.etree
- Spring Boot集成mapstruct快速入门指南
AskHarries
springboot后端javaspring
1.mapstruct介绍在项目中经常会用到DO,BO,DTO,VO等对象的相互转化,这就需要一个高效通用的转化工具,毕竟每个字段get/set方法会很麻烦。MapStruct就是这样的一个属性映射工具,只需要定义一个Mapper接口,MapStruct就会自动实现这个映射接口,避免了复杂繁琐的映射实现。2.代码工程pom.xmlspringboot-democom.et1.0-SNAPSHOT4
- 微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
我爱学习yq
开发语言前端css3微信小程序
小程序的双向数据绑定和Vue的双向数据绑定有一些不同之处。实现方式:小程序的双向数据绑定采用的是数据劫持的方式,通过重写对象的get和set方法来监听数据的变化和更新视图。而Vue使用的是响应式数据的方式,通过使用Object.defineProperty()方法来劫持对象的属性。语法差异:小程序的双向数据绑定使用的是{{}}语法,将数据绑定到视图上;Vue使用的是v-model指令来实现双向数据
- 阿里java开发手册泰山版_总结
林坰
Javajava数据库mysql
编程规约常量定义不允许任何预先未定义的常量出现在代码中。不要使用一个常量类维护所有的常量,要按常量功能进行归类,分开维护。OOP规约所有的POJO类属性必须使用包装数据类型。RPC方法的返回值和参数必须使用包装数据类型。POJO类是最简单最普通的JAVA对象,内在含义是有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。【没有从任何类继承、也没有实现任何接
- JavaWeb-JDBC-练习
rch041126
JavaWebJava的题目案例javaservlet开发语言
一、环境准备1、数据库表tb_brand2、实体类Brand最后注意使用get、set方法和toString二、实现功能1、查询所有数据2、添加数据3、根据id修改4、根据id删除
- Vue3警告:Write operation failed: computed value is readonly
ydcgye_
前端javascript开发语言
前因:利用vuex存放公共属性,并在组件中利用computed赋值调用锁定问题来源:(这里使用setup语法糖,js语法)letisVisible=computed(()=>store.state.daiLog.isVisible)原因:使用简写方法,当表单修改isVisible的值时,就会调用set方法,而这里的computed属性是不允许修改的解决方案:letisVisible=compute
- Vue 更新数据 Vue.set 的属性和方法
小吴吴吴呀
vue.jsjavascript前端
在对象中新增属性时,页面不会自动更新。可以用Vue.set方法解决。通过下标修改数组中的值,页面也不会自动更新。可以用数组的方法或Vue.set方法解决。特注:Vue.set不能给vm或根数据对象data添加属性!!!修改对象时的问题:{{title}}:{{info.name}}{{info.age}}修改学生年龄constvm=newVue({el:"#APP",data(){return{t
- 开发实体类
机跃
java前端服务器
开发实体类之间先在pom文件中加入该依赖org.projectlomboklombokprovided我们在实体类中声明各个属性后还需要分别为他们声明get、set方法、该实体类的至少一个构造方法和重写toString方法。虽然idea很强大,可以快速帮我们写好这些方法,但这么多代码写在实体类中难免有些繁杂了,所以我们可以运用注解来实现这些功能,这样就不需要写过多的方法了。//@Setter//代
- 安装lombok插件
廖宇亮
1.目的为了解决@Slf4j等找不到log变量问题,或@Data注解的实体找不到get和set方法。2.安装2.1.下载插件2.1.1.前往官网https://projectlombok.org/download下载lombok.jar2.1.2.将lombok.jar放在eclipse的安装目录下。2.2.开始安装2.2.1.然后win+R输入cmd进入cmd控制台,进入到eclipse安装目录
- 并查集,真好用,一次AC不是梦!
阿辉不一般
算法与数据结构算法数据结构c++c语言
文章目录前言并查集并查集的两个优化✈️路径压缩✈️按秩合并并查集代码模板前言大家好啊!今天阿辉来给大家介绍一种简洁而优雅的数据结构——并查集,不知道各位是否了解它,如果你在题解区见到并查集,想必各位一定见过类似下面这样的评论好了,阿辉也不卖关子了,开始咱们今天的学习吧!!!!并查集并查集是一种树形数据结构,每一棵树代表一个集合,支持两种操作:isSameSet方法:查找两个元素是否为同一集合uin
- Java学习笔记2024/2/16
Angus1648
java学习笔记
知识点面向对象题目1(完成)定义手机类,手机有品牌(brand),价格(price)和颜色(color)三个属性,有打电话call()和sendMessage()两个功能。请定义出手机类,类中要有空参、有参构造方法,set/get方法。定义测试类,在主方法中使用空参构造创建对象,使用set方法赋值。调用对象的两个功能,打印效果如下:正在使用价格为3998元黑色的小米手机打电话....正在使用价格为
- 2018-08-17
mmzc
周一:入职,环境搭建周二:springboot入门,jhipster了解,生成demo周三:springbootcrdu的demojpa动态查询《mysqldemo,用jpa数据库连接不上,发现是用忘记些getset方法,记得jpa配置的方法就好了》周四:configserver的demo,withgit/本地文件,更换jpa的数据库连接池未完《cloud3》cloud3里面的配置信息《cloud
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D