【Java中的内部类】教程文章相关的互联网学习教程文章

java – 具有静态内部类和双重检查锁定的Singleton【代码】

我正在阅读关于Singleton设计模式和评估不同的实现.我怀疑以下的实现: A.使用静态内部类的单例实现public class SingletonWithStaticClass {private SingletonWithStaticClass(){}private static class SingletonInnerClass{public static SingletonWithStaticClass INSTANCE = new SingletonWithStaticClass();}public static SingletonWithStaticClass getInstance(){return SingletonInnerClass.INSTANCE; }} B. Singleton双重...

Java内部类详解【代码】【图】

一、java内部类分类 1、成员内部类 成员内部类是最普通的内部类,定义位于另一个类内部。public class Outter {private int i =0;class Inner{public void print(){System.out.println(i);}}public void out(){new Inner().print();} public Inner getInner(){ return new Inner();} } 成员内部类可以无条件访问外部类的所有成员和方法(包括private成员和方法)。当内部类和外部类有同名变量或方法时,默认情况下是访问内部类...

java – Spring:将私有内部类注入外部类的成员?【代码】

我有以下类结构public class Outer{private Mapper a;....private class MapperA implements Mapper {}private class MapperB implements Mapper {} }在我的Spring配置文件中,我想创建一个外部bean,并将MapperA或MapperB中的一个指定为属性.这可能吗?<bean id="outer" class="mypackage.Outer"><property name="a" ?????='????' /> </bean>编辑:根据答案的反馈更多信息: >我对上面的例子很懒.我有一个Mapper实例变量的公共sette...

Java Lambda 与 匿名内部类的this 来分析【代码】

Java Lambda 表达式中的this是调用该方法调用者,匿名内部类的的this是匿名内部类本身。 如下 public class TestMain {public static void main(String[] args) {new TestMain().test();}private void test(){Function<String, String> fnc = new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println(this.getClass().getName());return "";}};String thisName = fnc.apply("");} }输出结果如...

java内部类基础知识【代码】

一、java内部类具体分四大类1、成员内部类2、静态内部类3、局部内部类4、匿名内部类 1、成员内部类 :作为类的成员,存在于类中 1 //成员内部类可以调用外部类的所有成员,但只有在创建了外部类的对象后,才能调用外部的成员。2 public class Outter1 {3 static int a=1;4 int b=0;5 6 public static void test1(){7 System.out.prin...

java – 从内部类引用的局部变量必须是final或者有效的final【代码】

这个程序是我班级的最后一个任务,我有问题弄清楚为什么我收到错误“从内部类引用的局部变量必须是最终的或有效的最终版本”.程序正在运行并发线程来对#的数组进行排序,然后找到该数组的高值和低值.当我在没有并发的情况下创建它时,我没有出现此错误.我在努力确定高低变量的最终位置.public void HiLo(int[] numbers){int high = numbers[0];int low = numbers[0];Runnable r2 = new Runnable(){@Overridepublic void run() {System...

java – 允许在其他地方引用匿名内部类实例时对类进行垃圾回收?【代码】

我有一个A类:public class A {private B b = new B() { public void method() { do something } };public B getB() { return b; } }public interface B { void method(); }实例b具有其外部类的实例的隐式引用(可以由此引用).现在另一个对象通过getter方法获取对此b的引用.由于引用,该b不能被垃圾收集. 有没有办法获得允许封闭A实例的垃圾收集的可能性,可能是通过重置匿名内部类中的显式引用?解决方法:技术上可行:public class H...

Java抽象类、接口、内部类【图】

抽象类的概念: 1、Java中可以定义没有方法体的方法,还方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类; 2、如,shape类计算周长和面积的方法无法确定,那么就可以将这样的方法声明为抽象的,以便在具体的子类中实现 抽象类的特征: 抽象方法的声明 修饰符abstract 返回值类型 方法名([参数列表]); 注意:因为抽象方法无法确定具体执行的功能,所以抽象方法没有方法体,需要在小括号后加上分号 ...

Java之内部类

内部类 1、内部类的概念 声明在另外一个类里面的类就是内部类。 2、内部类的4种形式 (1)静态内部类 (2)非静态成员内部类 (3)局部内部类 (4)匿名内部类 匿名内部类 1、语法格式: //在匿名子类中调用父类的无参构造 new 父类(){ 内部类的成员列表 } //在匿名子类中调用父类的有参构造 new 父类(实参列表){ 内部类的成员列表 } //接口没有构造器,这里表示匿名子类调用自己的无参构造,调用默认父类Object的无参构造...

Java内部类【代码】

内部类 转 将一个类的定义放在另一个类的定义内部,这就是内部类 1. 内部类基础 1.1 成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Circle {private double radius = 0;public Circle(double radius) {this.radius = radius;getDrawInstance().drawSahpe(); //必须先创建成员内部类的对象,再进行访问}private Draw getDrawInstance() {return new Draw();}class Draw { //...

java – 获取对匿名内部类的类对象的引用【代码】

参见英文答案 > Keyword for the outer class from an anonymous inner class 2个如何在Java中获得对匿名内部类的类对象的引用? 对于非anonimous类,它使用ClassName.class完成.解决方法:如果要引用匿名,请求匿名类的引用,这里的匿名类的java.lang.Class实例对象是如何做到的. 如果将anonimous类实例分配给变量obj,则可以使用obj.getClass()来引用该类.该示例使用Object,但可以使用任何非fina...

java – 内部类声明和初始化【代码】

我习惯用C编写代码,但必须将项目从C转换为Java.在C中使用数据结构非常简单.我试图复制相同的东西,但是如Java inner class and static nested class.在网上阅读了几个例子,并尝试了不同的版本,到目前为止这是我得到的:public class Main {public static void main( String[] args ) {...ClassOuter outerObj = new ClassOuter();ClassOuter.DataInner value = outerObj.new ClassOuter.DataInner();} }class ClassOuter{public sta...

java – Mockito spy – 在spy对象中调用内部类方法而不是spying方法【代码】

我有内部类的课程如下:public class ClassWithInnerObject {private final InnerObject innerObject;public ClassWithInnerObject() {innerObject = new InnerObject();}public void callInnerObjectMethod() {innerObject.outerFunc();}public void outerFunc() {innerFunc();}public void innerFunc() {Log.d("XXX", "innerFunc: called");}public class InnerObject {public void outerFunc() {innerFunc();}} }mockito测试看起...

java静态内部类初始化错误【代码】

语境:java.io.File类有一个静态内部类方法,如下所示:LazyInitialization.temporaryDirectory();[已编辑添加更多代码]我下面的代码最终调用上面的代码行.从temporaryDirectory()方法中抛出异常,在我的上下文中很好/期望.try {File tempFile = File.createTempFile("aaa", "aaa"); } catch (Exception e) {// handle exception }然后,当我再次调用相同的方法(createTempFile)时,我得到一个“java.lang.NoClassDefFound错误 – 无法...

Java导入类/枚举内部内部类时导入顺序的重要性【代码】

这是我的班级:package pepelu;import pepelu.ImportTest.InnerClass.InnerEnum; import javax.annotation.Resource;public class ImportTest {@Resourcepublic static class InnerClass {public enum InnerEnum {A}}public static void main(String[] args) {System.out.println(InnerEnum.A);} }当我使用maven构建时,它会给出一个编译错误:mvn clean compile[ERROR] /Users/finup/Desktop/a/importtest/src/main/java/pepelu/Im...