Tag: 内部类

是否有可能使用Javareflection创build一个嵌套类的实例?

代码示例: public class Foo { public class Bar { public void printMesg(String body) { System.out.println(body); } } public static void main(String[] args) { // Creating new instance of 'Bar' using Class.forname – how? } } 有没有可能创build一个名为Bar的新实例? 我试着用: Class c = Class.forName("Foo$Bar") 它find类,但是当我使用c.newInstance()它会引发InstantiationException。

是否有可能使Java中的匿名内部类静态?

在Java中,嵌套类可以是static ,也可以不是。 如果它们是static ,它们不包含对包含实例的指针的引用(它们也不称为内部类,它们被称为嵌套类)。 当不需要引用时,忘记将嵌套类设为static可能导致垃圾回收或转义分析的问题。 是否有可能使一个匿名的内部类static ? 还是编译器自动计算出来(它可以,因为不能有任何子类)? 例如,如果我做一个匿名比较,我几乎不需要参考外部: Collections.sort(list, new Comparator<String>(){ int compare(String a, String b){ return a.toUpperCase().compareTo(b.toUpperCase()); } }

内部类在接口

是可以在界面内创build一个内部类? 如果是的话,我们为什么要这样创造? 反正我们不打算创build任何接口对象? 他们在开发过程中有帮助吗?

实例化内部类

我正在处理一个示例性的问题: 重写 hashCode和equals方法,但得到一个错误:“不能包含CustomHashCodeExampletypes的封闭实例,必须使用一个封闭的CustomHashCodeExampletypes实例来限定分配(egxnew A()其中x是一个实例)我写了一个内部类HashPerson,当我试图在名为testHashCodeOverride()的另一个方法中实例化这个内部类时,我得到了这个错误。 public static void testHashCodeOverride(){ System.out.println("\nTest HashCode Override Method"); System.out.println("==================================\n"); HashPerson william = new HashPerson("willy"); HashPerson bill = new HashPerson("willy"); } 此代码工作正常,即使我没有看到静态内部类或外部类的实例,困惑:( public class HashCodeExample { public static void testHashCodeOverride() { HashPerson william = new HashPerson("Willy"); HashPerson bill = new HashPerson("Willy"); System.out.println("Hash code for william = " + william.hashCode()); System.out.println("Hash code for […]

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

有人可以指点我的理解和使用嵌套类的一些不错的资源? 我有一些像编程原则这样的材料,像这样的IBM知识中心 – 嵌套类 但是我仍然无法理解他们的目的。 有人可以帮我吗?

如何在静态方法中实例化非静态内部类

我有以下一段代码: public class MyClass{ class Inner{ int s,e,p; } public static void main(String args[]){ Inner in; } } 用这部分代码是好的,但我不能像main in=new Inner()方法中实例化'in',因为它显示了non static field cannot be referenced in static context 。 我能做到的方式是什么? 我不想让我的内部类是静态的。

嵌套类的范围?

我想了解在Python中的嵌套类的范围。 这是我的示例代码: class OuterClass: outer_var = 1 class InnerClass: inner_var = outer_var 类的创build没有完成,我得到的错误: <type 'exceptions.NameError'>: name 'outer_var' is not defined 尝试inner_var = Outerclass.outer_var不起作用。 我得到: <type 'exceptions.NameError'>: name 'OuterClass' is not defined 我正在尝试从InnerClass访问静态InnerClass 。 有没有办法做到这一点?

为什么我们不能在(非静态)内部类中使用静态方法?

为什么我们不能在非静态的内部类中使用静态方法? 如果我让内部类静态它的作品。 为什么?

内部类可以访问私有variables吗?

class Outer { class Inner { public: Inner() {} void func() ; }; private: static const char* const MYCONST; int var; }; void Outer::Inner::func() { var = 1; } const char* const Outer::MYCONST = "myconst"; 当我用Outer :: Inner类编译时,这个错误没有名为`var'的成员

Java:静态与内部类

静态和非静态内部类有什么区别?