确认问题 首先,需要确认确实是因为 java_outer_classname 无法被引用导致的问题。可以查看编译错误提示,确认问题的根源。 查看.proto文件 打开你的 .proto 文件,查看其中是否正确设置了 java_outer_classname。假设设置如下: optionjava_outer_classname="MyClass"; 1. 修改.proto文件 确认设置正确后,可以继续进行修改。
其实在这个应用程序中我们还看到了如何来引用内部类:引用内部类我们需要指明这个对象的类型:OuterClasName.InnerClassName。同时如果我们需要创建某个内部类对象,必须要利用外部类的对象通过.new来创建内部类:OuterClass.InnerClass innerClass = outerClass.new InnerClass();。 同时如果我们需要生成对外部类对象的引用,...
回到上一章节提到的 tips,为什么内部类的对象只能与外围类的对象相关联的情况下才能被创建(在内部类是非静态类时),为什么在外部类中的静态方法创建内部类对象时需要OuterClassName.InnerClassName这样的声明。也是因为静态区本身是独立的, 10.3 使用 .this 和 .new 如果需要生成对外部类对象的引用,可以使用OuterClassNa...
These class files have names that combine the inner and outer class names, such as MyClass$MyInnerClass.class. You should arrange the source files in a directory tree that reflects their package tree. For example: ⢠Oracle Solaris, Linux, and macOS: If all of your source files ...
● 局部内部类只能访问当前方法中final类型的参数与变量。如果方法中的成员与外部类的成员同名,可以使用 <OuterClassName>.this.<MemberName> 的形式访问外部类成员;● 局部内部类中还可以包含内部类,但这些内部类也不能使用访问控制修饰符(public、private 和 protected) 和 static修饰符;● 局部变量在方法执行...
如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须像在main()方法中那样,具体地指明这个对象的类型:OuterClassName.InnerClassName。(译者注:在外部类的静态方法中也可以直接指明类型InnerClassName,在其他类中需要指明OuterClassName.InnerClassName。) 12.2链接外部类 到目前为止,内部类似乎还只是一...
嵌套类编译时文件名:OutterClassName$InnerClassName.class 匿名内部类编译时文件名:OuterClassName$#.class(#从1开始,往上递增) 内部类可以使用OuterClassName.this访问外部类的this 如何创建内部类的对象: 先创建一个外部类对象outref 然后: OuterClassName.InnerClassName.innerRef = outref.new InnerClassName() ...
java_outer_classname,定义应包含此文件中所有类的类名。如果没有显示指定java_outer_classname,它会把文件名转换为驼峰命名来生成。比如,”my_proto.proto”会转化成”MyProto”作为外部类名。 下一行就是message的定义。消息只是包含一组类型字段的聚合。许多标准的简单数据类型都可用作字段类型,包括bool,int32,floa...
java_multiple_files, java_package, 和 java_outer_classname. 其中java_multiple_files指编译过后java文件的个数,如果是true,那么将会一个java对象一个类,如果是false,那么定义的java对象将会被包含在同一个文件中。 java_package指定生成的类应该使用的Java包名称。 如果没有明确的指定,则会使用之前定义的package...
1.内部类的创建,在该内部类直属外部类里面创建内部类对象无需指定外部类(即无需采用outerClassName.innerClassName),在非直属类(该内部类不是该类的直接内部类)则需要指定该内部类外部类(即outerClassName.innerClassName这种方式),至于要采用几级外部类,应该以下面这个规则为准(增加外部类直到最顶层外部类该引用该内...