草庐IT

inner-classes

全部标签

java - 匿名类(class)是个坏主意吗?

在使用了一段时间后,我不禁觉得使用匿名类时被迫跳过的圈套是不值得的。你最终得到的是final,无论代码是什么,都比使用命名良好的内部类更难阅读。那么使用它们有什么好处呢?我一定是遗漏了什么。 最佳答案 优点是它是闭包的实现。它很笨重,但它是我们目前Java中最好的。换句话说,您不必为了保留一些您已经在某处作为局部变量获得的状态而创建新类。我有anarticlecomparingC#andJavaclosures,以及为什么它们首先有用,这可能会有所帮助。 关于java-匿名类(class

java - 访问外部类的字段

在给定对内部类对象的引用的情况下,如何访问外部类的字段?classOuter{intfield;classInner{voidmethod(Innerparameter){//workingonthecurrentinstanceiseasy:)field=0;Outer.this.field=1;//workingonanotherinstanceishard:(parameter.field=2;//doesnotcompileparameter.Outer.this.field=3;//doesnotcompileparameter.outer().field=4;//Thisw

java - 内部类访问外部类方法,方法名相同

我有一个类和一个内部类01publicclassA{02voidtest(){};03publicclassB{04voidtest(){05test();06}07}08}好的,05行id喜欢访问A类的方法test。但是我进入了一个循环,因为我不知道如何指定使用类A的方法。有什么想法吗? 最佳答案 01publicclassA{02voidtest(){};03publicclassB{04voidtest(){05test();//localB.test()method,sorecursion,useA.this.test();

java - 我应该对从父类(super class)继承的方法进行单元测试吗?

我目前正在以TDD方式编写JDBC驱动程序的实现(是的,您没看错),虽然此时我只完成了类stub和一些次要功能,我突然想到,由于Statement是PreparedStatement的父类(superclass),它是CallableStatement的父类(superclass),所以当我真正开始时我应该怎么做为这些类的实现编写测试,我应该做其中的哪一个:为Statement创建一个测试套件,然后扩展该套件以对PreparedStatement进行额外测试,然后对CallableStatement执行相同的操作。单独测试每个实现,忽略从父类(superclass)继承的方法。严格测试

java - 为什么 Java 在编译时会生成多个 .class 文件?

在Java中,在编译时我们为源文件中定义的每个类(包括嵌套类和接口(interface))获得一个.class文件。生成多个.class文件的原因是什么?是为了简化类的复用性吗?为什么不为一个.java文件生成一个.class? 最佳答案 JVM需要能够根据给定的名称找到给定类的代码。如果源文件名和代码文件名之间可能没有任何关系,并且您希望代码文件名基于源文件名,您希望它如何加载代码?举个例子:假设我要编译包含类Bar的Foo.java。然后另一个类引用Bar,因此JVM需要它的代码...您建议它如何找到文件?请注意,在.NET中有

Git 提交commit排除要忽略的文件-简单2步搞定(class文件都可以忽略)

文章目录一、IDEA配置二、git控制项目中的.gitignore文件一、IDEA配置我们idea打开一个项目时,不希望看到和项目无关的文件,如.idea.git.iml.svn;这时需要对idea进行设置idea设置步骤如下,idea打开项目后是看不到这些被忽略的文件和文件夹二、git控制项目中的.gitignore文件在开发过程中,有些通过编译、打包、日志产生的文件每次改动都有可能产生变化,而这些是不需要提交的到代码仓库,每次gitcommit时出现,很容易不小心提交上去。如下图中有target文件下class文件,是不用提交的。为了规范代码提交,忽略commit窗口显示这些文件,需要配置

java - "cannot find symbol - class Scanner"错误

这是我的代码publicclassWorkshop3{publicstaticvoidmain(String[]args){System.out.println("pleaseenterradiusofcircle");doubleradius;Scannerkeyboard=newScanner(System.in);keyboard.nextDouble(radius);}}我收到的错误是cannotfindsymbol-classscanner在线Scannerkeyboard=newScanner(System.in); 最佳答案

java - 内部类是轻量级的吗?

是内部类比普通类更轻量,还是最终java编译内部类和普通类一样?我知道java中的类本身并不是非常轻量级的,它们会占用部分permgen内存,所以我想知道是否最好使用类似闭包的函数作为内部类,或者标准类是否也可以好吗? 最佳答案 内部类和匿名内部类都编译成.class文件。例如:classOuter{classInner{}Objectfunction(){returnnewObject(){};}}会生成三个.class文件,Outer.class、Outer$Inner.class、Outer$1.class。它们并不比其他类更

java - 静态内部类线程在另一个 java 类中是否安全?

为了收集更小的辅助工具类,我创建了一个通用的classMyUtils://MyUtils.javapublicfinalclassMyUtils{publicstaticclassHelper1{};publicstaticclassHelper2{};//...}MyUtils中的辅助类将在包的其他文件中使用://MyClass1.javapublicclassMyClass1{privateMyUtils.Helper1help1=newMyUtils.Helper1();publicvoidmethod(){privateMyUtils.Helper2help2=newMyUti

java - 'mix class and interfaces in the same package' 是不好的做法吗?

我刚刚发现了一些我以前从未听说过并且我不同意(到现在)的东西。在(已投票且未进一步评论)answer我阅读了“为什么要在同一个包中混合类和接口(interface)”所以我想知道,是否有理由将Java中的接口(interface)和实现分开。我知道我们没有义务将所有实现都放在接口(interface)包中,但(有时)不在那里是明智的吗?问候迈克[;-) 最佳答案 我同意org.life.java-我将拥有服务和底层service.impl包,但始终采用那种安排。我不同意“不好的做法”这个词。太强了。java.utilCollecti