inner-classes相关内容
是否可以使用 Java 反射从另一个类实例化私有内部类.例如,如果我拿了这个代码 public class Main {public static void main(String[] args) {}}类其他类{私人课程测试{}} 是否可以从类 main 中的 main 方法实例化并访问 Test. 解决方案 当使用反射时,您会发现该内部类的构造函数将外部类的实例作为附加参数(总是第
..
我正在为我的新网站构建一个用户类,但是这次我想以稍微不同的方式构建它... C++、Java 甚至 Ruby(可能还有其他编程语言)都允许在主类中使用嵌套/内部类,这使我们能够使代码更加面向对象和组织. 在 PHP 中,我想做这样的事情: 这在 PHP 中可行吗?我怎样才能实现它? 更新 如果不可能,未来的 PHP 版本会支持嵌套类吗? 解决方案 Intro:
..
为什么非静态内部类不能有静态方法? 公共类 Foo {类栏{static void method() {}//编译错误}} 如果我将内部类设为静态,它就可以工作.为什么? 公共类 Foo {static class Bar {//现在是静态的静态无效方法(){}}} 在 Java 16+ 中,这两个都是有效的. 解决方案 因为内部类的实例与其外部类的实例隐式关联,所以它本身不能定义
..
考虑以下代码: class abstract Normal1 扩展了Something{}类外{类抽象内部扩展 Normal1{}}class General extends Outer.Inner//问题出现在这个{} 我得到的错误是“由于某些中间构造函数调用,没有可用的 PerfHelper 类型的封闭实例" 我的问题是我可以像上面那样扩展内部类吗? 解决方案 将内部类声明为
..
是否可以在 Java 中创建接口的实例? 我在某处读到使用内部匿名类我们可以做到如下所示: 接口测试{公共无效的愿望();}类主要{公共静态无效主(字符串 [] args){测试 t = 新测试(){公共无效的愿望(){System.out.println("输出:你好,你怎么样");}};t.wish();}} cmd>javac Main.javacmd>主程序输出:你好,你好吗
..
我正在处理一个覆盖 hashCode 和 equals 方法的示例问题,但收到错误:“没有可访问类型 CustomHashCodeExample 的封闭实例.必须使用 CustomHashCodeExample 类型的封闭实例限定分配(egxnew A() 其中 x 是 CustomHashCodeExample 的实例."我写了一个内部类 HashPerson,当我尝试在另一个名为 testHa
..
我有以下一段代码: public class MyClass {类内{整数 s, e, p;}公共静态无效主(字符串参数[]){内在;}} 到这部分代码很好,但我无法在主要方法中实例化“in",如 in = new Inner() 因为它显示了 非静态字段不能在静态上下文中引用. 我有什么方法可以做到?我不想让我的 Inner 类 static. 解决方案 您还必须引用其他外部类
..
为什么非静态内部类不能有静态方法? 如果我将内部类设为静态,它就可以工作.为什么? 解决方案 因为内部类的实例与其外部类的实例隐式关联,所以它本身不能定义任何静态方法.由于静态嵌套类不能直接引用其封闭类中定义的实例变量或方法,因此只能通过对象引用使用它们,因此在静态嵌套类中声明静态方法是安全的.
..
当使用 Jackson 对对象进行(反)序列化时,我试图将原始 JSON 包含在 Java 对象中.为了测试这个功能,我写了以下测试: 公共静态类 Pojo {公共字符串 foo;@JsonRawValue公共字符串栏;}@测试public void test() 抛出 JsonGenerationException、JsonMappingException、IOException {Strin
..
静态嵌套类和非静态嵌套类有什么区别? 解决方案 一个内部类, 非静态嵌套类对嵌套类的成员具有完全访问权限.静态嵌套类没有对嵌套实例的引用,因此静态嵌套类不能调用非静态方法或访问嵌套类的实例的非静态字段.
..
我一直在阅读一些关于 Android 内存泄漏的文章,并观看了来自 Google I/O 关于该主题的有趣视频. 不过,我还没有完全理解这个概念,尤其是当它对用户活动中的内部类是安全或危险的时. 这是我的理解: 如果内部类的实例比其外部类(活动)存活时间更长,则会发生内存泄漏.-> 在什么情况下会发生这种情况? 在这个例子中,我认为没有泄漏的风险,因为扩展 OnClickL
..
class OuterClass {类内部类{静态 int i = 100;//编译错误static void f() { }//编译错误}} 虽然无法使用 OuterClass.InnerClass.i 访问静态字段,但如果我想记录一些应该是静态的内容,例如创建的 InnerClass 对象的数量,使该字段成为静态会很有帮助.那么为什么Java禁止在内部类中使用静态字段/方法? 编辑:我
..
我观察到外部类可以访问内部类私有实例变量.这怎么可能?这是一个演示相同内容的示例代码: class ABC{XYZ类{私有整数 x=10;}公共静态无效主(字符串...参数){ABC.XYZ xx = 新 ABC().new XYZ();System.out.println("你好::"+xx.x);///为什么这是允许的??}} 为什么允许这种行为? 解决方案 内部类只是将真正属于原
..
我有以下代码.我想获取外部类对象,我使用它创建了内部类对象 inner.我该怎么做? public class OuterClass {公共类内部类{私人字符串名称 = "Peakit";}公共静态无效主(字符串 [] args){OuterClass 外 = 新的 OuterClass();InnerClass 内部 = 外部.new InnerClass();//如何获取与创建内部对象相同的
..
我在 Java 8 中使用 lambdas 并遇到警告从 lambda 表达式引用的局部变量必须是最终的或有效的最终.我知道当我在匿名类中使用变量时,它们在外部类中必须是 final,但是 - final 和 effectively final 之间有什么区别? 解决方案 ... 从 Java SE 8 开始,本地类可以访问最终或有效最终的封闭块的局部变量和参数.在初始化后值永远不会改
..
我有以下代码: class 你好{类事物{公共整数大小;事物() {大小 = 0;}}公共静态无效主(字符串 [] args){Thing thing1 = new Thing();System.out.println("你好,世界!");}} 我知道 Thing 什么都不做,但是我的 Hello, World 程序在没有它的情况下编译得很好.只有我定义的课程失败了. 它拒绝编译.我在创
..
Java 中内部类和静态嵌套类的主要区别是什么?设计/实施是否会在选择其中之一时发挥作用? 解决方案 来自 Java 教程: 嵌套类分为两类:静态和非静态.声明为静态的嵌套类简称为静态嵌套类.非静态嵌套类称为内部类. 使用封闭类名访问静态嵌套类: OuterClass.StaticNestedClass 例如,要为静态嵌套类创建对象,请使用以下语法: OuterClass
..
我正在尝试创建一个类,该类使用自己的状态来操作它持有引用的外部对象的状态.外部对象可以是A类或B类,两者相似,但不受作者控制.因此,根据 @SimY4 的早期答案,创建了一个密封类来访问它们的公共属性. //*** 不编译 ***class A {//结构不可修改的外部类val prop get()=“一些字符串成为A类方式"}class B {//结构不可修改的外部类val prop get(
..
考虑以下代码: class abstract Normal1 扩展了Something{}类外{类抽象内部扩展 Normal1{}}class General extends Outer.Inner//问题出现在这个{} 我得到的错误是“由于某些中间构造函数调用,没有可用的 PerfHelper 类型的封闭实例" 我的问题是我可以像上面那样扩展内部类吗? 解决方案 将内部类声明为
..
我正在使用 Eclipse,并且我已经使用 SWT 编写了一个 Java 应用程序.当 Eclipse 编译我的程序时,它将我的主文件重命名为 4 个不同的文件,如下所示: MainFile.class MainFile$1.class MainFile$2.class MainFile$3.class 当我从命令行运行这个程序时,我得到 找不到主类:MainFile.clas
..