关于静态内部类的一些看法

网上搜一下静态内部类基本上都会有这么一段:“

static class Outer {
class Inner {}
static class StaticInner{}
}

Outer outer =newOuter();
Outer.Inner inner = outer.new Inner();
Outer.StaticInner inner0 = new Outer.StaticInner();

就是说非静态内部类,必须要通过外部对象的实例才能创建其实例,而静态内部类则是通过外部对象(而非对象的实例)

从内部累创建的角度这就很好的印证了:静态内部类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用(外部类对象的实例)

如果是在外部对象的方法中用到内部类,原理是一样的。。。。。。上一下某个前辈的部分代码:

public class ObjectUtil {

    public static <T> T convertObject(Object objFrom, Class<T> classTo) {
        。。。。    
        FieldHolder holder = new FieldHolder();
        。。。。
        return obj;
    }
    static class FieldHolder {
        。。。
    }
}

可以看出都不需要写出外部类就可以实例化一个内部静态类(废话嘛)
但如果是非静态内部类,就需要外部类的实例对象,也就是:

FieldHolder holder = new ObjectUtil().new FieldHolder();``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值