Tag: 内部类

inheritance时无法访问受保护的内部类

通过“Thinking in Java”阅读我坚持使用ex:6 of Inner Classes章节。 练习6:(2)在自己的包中创建一个至少包含一个方法的接口。 在单独的包中创建一个类。 添加一个实现该接口的受保护内部类。 在第三个包中,inheritance自您的类,并在方法内部返回受保护内部类的对象,在返回期间向上转换为接口。 这是我的代码: IOne.java 接口 package intfpack; public interface IOne{ void f(); } COne.java 具有实现接口的受保护内部类的类 package classpack; import intfpack.*; public class COne{ protected class Inner implements IOne{ public void f(){System.out.println(“Inner class of COne”);} } } CTwo.java 从具有受保护内部类的类inheritance package thirdpack; import classpack.*; import intfpack.*; public class CTwo extends […]

类可以嵌套在类中多少次?

我在其中一个在线Java测试中遇到了这些问题。 选项分别为4,5,8和任意次数。 我只使用了一个内部类,但从未尝试过多个内部类。 我想知道是否有人知道答案。

如何在Java中加载嵌套类?

我有以下java代码: public class CheckInnerStatic { private static class Test { static { System.out.println(“Static block initialized”); } public Test () { System.out.println(“Constructor called”); } } public static void main (String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { System.out.println(“Inside main”); Class.forName(“Test”); // Doesn’t work, gives ClassNotFoundException //Test test = new Test(); // Works fine } } 为什么class.forName(“Test”)在这里工作,而下一行工作正常?

在Java中用接口定义类的能力的实用方面?

在Java中用接口定义类的能力的实际方面是什么: interface IFoo { class Bar { void foobar () { System.out.println(“foobaring…”); } } }

Java中内部类的用途是什么? 嵌套类和内部类是一样的吗?

可能重复: Java内部类和静态嵌套类 Java中内部类的用途是什么? 嵌套类和内部类是一样的吗?

内部类是否常用于Java? 他们“坏”吗?

内部类是否常用于Java? 这些是否与嵌套类相同? 或者用Java更换这些更好的东西? 我有一本关于第5版的书,它有一个使用内部类的例子,但我想我读过一些内部类是“坏”的。 我不知道,并希望有关于它的想法。 谢谢。

在Java嵌套类中,封闭类是否可以访问内部类的私有成员?

在Java中,内部类可以访问封闭类的私有成员。 但是外部类可以访问内部类的私有成员吗? 这与内部阶级是否是静态无关。 我认为这不是真的,但以下代码似乎编译并正常工作。 public class Outer { class Inner { private int i = 0; private Inner() {} } public static void main(String[] args) { Outer o = new Outer(); Outer.Inner oi = o.new Inner(); oi.i = 10; } }

java内部/外部类关于外部类私有变量访问的问题

我有以下java类: class Outer { private Integer a; private Long b; class Inner { public void foo() { System.out.println(“a and b are ” + a + ” ” + b); } } } 当我在Outer和Outer $ Inner上运行javap时,我得到以下内容: C:\test>javap Outer Compiled from “Outer.java” class Outer extends java.lang.Object{ Outer(); static java.lang.Integer access$000(Outer); static java.lang.Long access$100(Outer); } C:\test>javap Outer$Inner Compiled […]

实例化内部类

我有一个实用工具方法,当从中删除不相关的逻辑时,简化的方法将如下所示: public static List getFooList(Class clazz) { List returnValue = new ArrayList(); for(int i=0; i < 5; i++) { A object = clazz.newInstance(); returnValue.add(object); } return returnValue; } 问题是,如果clazz是一个内部类,如Foo.Bar.class ,那么即使Bar是公共的, newInstance()方法也不会工作,因为它会抛出一个java.lang.InstantiationException 。 有没有办法动态实例化内部类?

java如何实现内部类闭包?

在Java中,匿名内部类可以引用其本地范围中的变量: public class A { public void method() { final int i = 0; doStuff(new Action() { public void doAction() { Console.printf(i); // or whatever } }); } } 我的问题是这是如何实际实现的? 我如何进入匿名内部doAction实现,为什么它必须是final ?