相关疑难解决方法(0)

公共类的私有内部类的可见性

虽然这显然是一个RTFM案例,但不知怎的,我找不到一个解释这一切的简明来源.

public class Outer {

   private class Inner {

   }

}
Run Code Online (Sandbox Code Playgroud)

私人班级Inner公共班级inner的一类.Outer

我的问题是关于知名度Inner从外面'外".

  1. 我应该能够Inner在另一个类中实例化吗?如果是,是否有任何限制(例如此类在同一个包中,等等)?

  2. 可以Inner使用集合时,可以用作一个具体类型?例如,我应该能够ArrayList <Inner>在另一个类中声明吗?

  3. 如果上述问题extends OuterInner 出现另一个课程?

java visibility inner-classes

0
推荐指数
1
解决办法
143
查看次数

无法在java中创建内部类对象

我无法在java中创建内部类对象:

package OOO;

class Car{
    class Engine{

        void display() {
            System.out.println("this is inner diaplay() method");
        }

    }
}

public class Sample8InnerClassCar {
    Car c = new Car();
    Car.Engine e = c.new Car.Engine();
}
Run Code Online (Sandbox Code Playgroud)

它给我一个错误:无法分配成员类型Car.Engine.有人可以帮我理解更多吗?

java

0
推荐指数
1
解决办法
52
查看次数

我如何在内部类中使用变量?

我有使用Kotlin的代码:

class A{
    var myVariable:String?=null

    constructor(myVariable:String){
        this.myVariable = myVariable
    }

    init {
        println("Success !")
    }

    inner class B{
        init {
            println(myVariable)
        }
    }
}

fun main(args:Array<String>){
    var b = A("test").B // this does not work
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它无法正常工作:

Error:(20, 23) Kotlin: Nested class 'B' accessed via instance reference
Error:(20, 23) Kotlin: Classifier 'B' does not have a companion object, and thus must be initialized here
Run Code Online (Sandbox Code Playgroud)

我该如何解决我的问题?

kotlin

0
推荐指数
1
解决办法
59
查看次数

如何用内部类编译java类?

我需要编译一个具有多个内部类(或嵌套)的java类.示例:Myclass.java Myclass $ sub1.class Myclass $ sub2.class Myclass $ sub2 $ subsub.class

我需要使用编译的内部类文件编译(命令行,oracle javac)文件Myclass.java.

如何才能做到这一点?我尝试了-sourcepath选项,没有运气.

谢谢

java javac

-1
推荐指数
1
解决办法
3442
查看次数

关于JAVA的内部类

我正在学习Java中的内部类,但我编写这段代码,当我编译它时,我得到了这个错误: Error:(84, 23) java: non-static variable this cannot be referenced from a static context.

    public class Main {

    class Outer {
        private String string;

        Outer(String s) {
            this.string = s;
        }

        public Inner inner() {
            return new Inner();
        }

        class Inner {
            @Override
            public String toString() {
                return string;
            }
        }
    }

    public static void main(String[] args) {
        Outer outer = new Outer("yang");
      //  System.out.println(outer.inner().toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

我已将内部类更新为此,它可以工作.

public class Main {

    static class Outer {
        private …
Run Code Online (Sandbox Code Playgroud)

java

-3
推荐指数
1
解决办法
73
查看次数

标签 统计

java ×4

inner-classes ×1

javac ×1

kotlin ×1

visibility ×1