加载的一个小问题

加载的一个小问题

老师在xml类中,如果private static List<User> userData=new ArrayList();创建了这个静态对象,然后创建了一个初始化的方法,在静态块内,不调用这个初始化方法的话,是没办法对userdata这个集合进行赋值的吧。我测试了下是这样的。 必须在静态块内调用,通过服务器对类的加载,然后生成静态块内的代码,从而实现不调用初始化方法,也可以获取userdata的数据,对吧。 

2、

在用户信息初始化的方法内,不需要data.clear()方法去清除信息吧,因为在程序中并没有对这个集合进行增加或修改,


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2021-04-08 11:53:41

同学你好,关于同学的问题,有如下回答:

1、静态属性是在类j加载时进行加载的,private static List<User> userData=new ArrayList();是静态属性,在类加载时已经进行了加载。不需要静态块也可以对userData属性进行赋值的,如:

如下将泛型User类改为了String

http://img1.sycdn.imooc.com//climg/606e7b6e099f87f208240327.jpg

不需要在静态块内调用。

2、如果对用户信息进行重新加载,需要用到data.clear(),必须在原来的数据上进行追加操作。

祝学习愉快~


  • 提问者 rock221 #1

    老师还有一个问题,为什么在更新方法需要设置

    userDataFile=decoder.decode(userDataFile,"utf-8"); 将base64转成字符串再读取文件,

    而在新增或删除的方法中直接通过dom4j进行读取的,就没有这一步了。 为什么嗯?

    2021-04-08 14:04:15
  • 提问者 rock221 #2

    是因为类第一次加载的时候,对其进行处理就行了,而在后面的新增操作,已经处理过了,所以直接读取就可以啦?

    2021-04-08 14:06:05
  • 好帮手慕阿满 回复 提问者 rock221 #3

    同学你好,userDataFile=decoder.decode(userDataFile,"utf-8"); 是对读取文件的路径设置编码方式为UTF-8,新增或者删除的方法中是对文件进行读取。对路径设置时,使用decoder.decode()设置路径的编码方式,对文件读取时,使用的如下方式设置编码,如:

    http://img1.sycdn.imooc.com//climg/606eb56409c66c5506280056.jpg

    祝学习愉快~

    2021-04-08 15:49:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师