栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java本地内部类中的访问方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java本地内部类中的访问方法

正如ILikeTau的评论所说,您无法访问在方法中定义的类。您可以在方法之外定义它,但是另一种可能性是定义一个

interface
(或抽象类)。这样,代码仍将位于您的方法内部,并且可以访问
final
该方法中定义的变量和参数(如果将整个类移到外面,则无法执行此操作)。就像是:

class Outer {    int a = 100;    public interface AnInterface {        void mInner();  // automatically "public"    }    AnInterface mOuter() {   // note that the return type is no longer Object        class Inner implements AnInterface { @Override public void mInner() {    // must be public     int y = 200;     System.out.println("mInner..");     System.out.println("y : " + y); }        }        Inner iob = new Inner();          return iob;    }}class Demo {    public static void main(String[] args) {  // the preferred syntax        Outer t = new Outer();        Outer.AnInterface ob = t.mOuter();        ob.mInner();     }}

注意: 未测试

请注意,返回类型和的类型

ob
已从更改
Object
。这是因为在Java中,如果将某物声明为an
Object
,则只能访问为定义的方法
Object
。编译器必须在编译时(而不是在运行时)知道您的对象
ob
有一个
mInner
方法,并且无法知道它唯一知道的是它是一个方法
Object
。通过将其更改为
AnInterface
,编译器现在知道它具有
mInner()
方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号