虽然这显然是一个RTFM案例,但不知怎的,我找不到一个解释这一切的简明来源.
public class Outer {
private class Inner {
}
}
Run Code Online (Sandbox Code Playgroud)
私人班级Inner
是公共班级inner
的一类.Outer
我的问题是关于知名度的Inner
从外面'外".
我应该能够Inner
在另一个类中实例化吗?如果是,是否有任何限制(例如此类在同一个包中,等等)?
可以Inner
使用集合时,可以用作一个具体类型?例如,我应该能够ArrayList <Inner>
在另一个类中声明吗?
如果上述问题extends Outer
会Inner
出现另一个课程?
我无法在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.有人可以帮我理解更多吗?
我有使用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)
我该如何解决我的问题?
我需要编译一个具有多个内部类(或嵌套)的java类.示例:Myclass.java Myclass $ sub1.class Myclass $ sub2.class Myclass $ sub2 $ subsub.class
我需要使用编译的内部类文件编译(命令行,oracle javac)文件Myclass.java.
如何才能做到这一点?我尝试了-sourcepath选项,没有运气.
谢谢
我正在学习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)