标签: inner-classes

Java内部类和静态嵌套类

Java中的内部类和静态嵌套类之间的主要区别是什么?设计/实施是否在选择其中一个方面发挥作用?

java inner-classes static-classes

1691
推荐指数
21
解决办法
70万
查看次数

Java:静态vs内部类

静态和非静态嵌套类有什么区别?

java static inner-classes

355
推荐指数
5
解决办法
27万
查看次数

不是一个封闭的Java类

我正在尝试制作俄罗斯方块游戏而且我遇到了编译器错误

Shape is not an enclosing class

当我尝试创建一个对象时

public class Test {
    public static void main(String[] args) {
        Shape s = new Shapes.ZShape();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在为每个形状使用内部类.这是我的代码的一部分

public class Shapes {
    class AShape {
    }
    class ZShape {
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?

java inner-classes

347
推荐指数
6
解决办法
30万
查看次数

最终和有效决赛之间的区别

我在Java 8中玩lambdas,我遇到了警告local variables referenced from a lambda expression must be final or effectively final.我知道当我在匿名类中使用变量时,它们必须在外部类中是最终的,但仍然 - 最终有效最终之间有什么区别?

java lambda final inner-classes java-8

329
推荐指数
7
解决办法
16万
查看次数

什么时候使用(匿名)内部类确切泄漏?

我一直在阅读一些有关Android内存泄漏的文章,并观看了Google I/O 关于此主题的有趣视频.

尽管如此,我还是不完全理解这个概念,特别是当在Activity中使用内部类是安全或危险的时候.

这就是我的理解:

如果内部类的实例比其外部类(活动)存活的时间更长,则会发生内存泄漏.- > 在哪种情况下会发生这种情况?

在这个例子中,我认为没有泄漏的风险,因为匿名类扩展没有办法OnClickListener比活动更长寿,对吧?

    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog_generic);
    Button okButton = (Button) dialog.findViewById(R.id.dialog_button_ok);
    TextView titleTv = (TextView) dialog.findViewById(R.id.dialog_generic_title);

    // *** Handle button click
    okButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    titleTv.setText("dialog title");
    dialog.show();
Run Code Online (Sandbox Code Playgroud)

现在,这个例子是危险的,为什么?

// We are still inside an Activity
_handlerToDelayDroidMove = new Handler();
_handlerToDelayDroidMove.postDelayed(_droidPlayRunnable, 10000);

private Runnable _droidPlayRunnable = new Runnable() { 
    public void run() {
        _someFieldOfTheActivity.performLongCalculation(); …
Run Code Online (Sandbox Code Playgroud)

java android memory-leaks inner-classes

313
推荐指数
1
解决办法
5万
查看次数

Java - 不能访问类型为Foo的封闭实例

我有以下代码:

class Hello {
    class Thing {
        public int size;

        Thing() {
            size = 0;
        }
    }

    public static void main(String[] args) {
        Thing thing1 = new Thing();
        System.out.println("Hello, World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道Thing什么都不做,但我的Hello,World程序在没有它的情况下编译得很好.这只是我定义的类失败了.

它拒绝编译.我开始No enclosing instance of type Hello is accessible."创造一个新的东西.我猜是:

  1. 我有系统级问题(在DrJava或我的Java安装中)或
  2. 我对如何在java中构建一个工作程序有一些基本的误解.

有任何想法吗?

java inner-classes

297
推荐指数
5
解决办法
23万
查看次数

从内部类对象获取外部类对象

我有以下代码.我想掌握使用它创建内部类对象的外部类对象inner.我该怎么做?

public class OuterClass {

    public class InnerClass {
        private String name = "Peakit";
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        InnerClass inner = outer.new InnerClass();
       // How to get the same outer object which created the inner object back?
        OuterClass anotherOuter = ?? ;

        if(anotherOuter == outer) {
             System.out.println("Was able to reach out to the outer object via inner !!");
        } else {
             System.out.println("No luck :-( ");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:嗯,你们中的一些人建议通过添加一个方法来修改内部类: …

java inner-classes

228
推荐指数
3
解决办法
14万
查看次数

为什么我需要使用C#嵌套类

我试图了解C#中的嵌套类.我知道嵌套类是在另一个类中定义的类,我没有得到的是为什么我需要这样做.

c# nested-class inner-classes

214
推荐指数
7
解决办法
16万
查看次数

为什么要在C++中使用嵌套类?

有人可以指点我一些很好的资源来理解和使用嵌套类吗?我有一些材料,如编程原理和类似IBM知识中心 - 嵌套类的东西

但我仍然无法理解他们的目的.有人可以帮帮我吗?

c++ nested inner-classes

180
推荐指数
4
解决办法
17万
查看次数

为什么外部Java类可以访问内部类私有成员?

我观察到外类可以访问内部类私有实例变量.这怎么可能?以下是演示相同内容的示例代码:

class ABC{
    class XYZ{
        private int x=10;
    }

    public static void main(String... args){
        ABC.XYZ xx = new ABC().new XYZ();
        System.out.println("Hello :: "+xx.x); ///Why is this allowed??
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么允许这种行为?

java private class inner-classes private-members

169
推荐指数
6
解决办法
9万
查看次数