瑞驰面试

这面试真的是够打击我的了,那个经理问我两个问题,我没答出来就直接把简历还我让我回去了

问题有两个:

1.在不改变一个类的封装性的情况下,给这个类动态添加一个新的字段 前提是不能建新的类或者继承

  我是怎么也想不出来,后来回来查了一下,有人说反射可以实现,应该不可以,反射只是可以改变属性的值,不能动态添加属性,后来查了一下,使用cglib javaasssist asm等可以实现(郁闷的是他说着已经是java里面最基础的东西了)。

2.把c盘的txt文件读出来

实现过程还是可以想到的,但是他要我把代码写一下,文件的数据结构还要自己想,这样的话我是真写不出来了,很多方法都想不来名字了

后来问了一下师兄,大概思路也差不多,可是师兄在想思路的时候就是会想的很仔细,把整个过程的所有细节都心理有数了,就是第一步该怎么做,第二步要怎么做都想的很清楚了,这些我真该好好的学习一下



网上找一下为什么反射不能动态添加属性:

添加方法和属性,这相当于修改了这个clas搜索s类型, 可以参考cglib之类的操作java字节码的技术。
不可以,你可以想像一下,反射发生的时机和步骤。当通过反射获得了指定对象的Class对象之后,此时的对象是存放在堆内存中的,而且已经完成了编译,此时的对象是无法对其进行添加熟悉和方法的。换种思路,如果可以的话,那么修改厚的对象将不再是原有类的对象,那么原有类类型的引用变量引用当前对象势必报错。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值