为了账号安全,请及时绑定邮箱和手机立即绑定

Java:封装其实也有口子,反射的操作

标签:
Java Android
  • 类似于中国网络有堵墙一样,封装就好比那堵墙,但是反射中的一个方法,就是那个凿洞的锤子:titleField.setAccessible(true);

证明:实例化对象增加了一个新的方法-----反射:

package cn.dujiang.demo;

import java.lang.reflect.Field;
/**
 * public class TestDemo {
    public static void main(String[] args) throws Exception {
        Class<?> cls = Class.forName("cn.dujiang.next.Food") ;
        Object obj = cls.newInstance();//必须给出实例化对象
        Field titleField = cls.getDeclaredField("title") ;
        titleField.set(obj,"鱼香肉丝"); //相当于,Food类对象.title = "鱼香肉丝";
        System.out.println(titleField.get(obj));//相当于,Food类对象.title
    }
}
以上程序会报错。但是可以解决  titleField.setAccessible(true);//封装取消了
 * @author Dujiang
 *
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {
        Class<?> cls = Class.forName("cn.dujiang.next.Food") ;
        Object obj = cls.newInstance();//必须给出实例化对象
        Field titleField = cls.getDeclaredField("title") ;
        titleField.setAccessible(true);//封装取消了
        titleField.set(obj,"鱼香肉丝"); //相当于,Food类对象.title = "鱼香肉丝";
        System.out.println(titleField.get(obj));//相当于,Food类对象.title
    }
}
很多人都和我说过,千万不要用汉化版的Eclipse等编程工具,你可能看到有的教学视频中用汉化版,很强,你也想试试,其实这完全是在给自己挖坑,不适合开发的,建议所有人,本着国际化原则,用最新英文原版的eclipse
点击查看更多内容
9人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消