在谈到构造函数时,我试图理解为什么类成员的可访问性之间存在差异。考虑以下示例:classA{staticclassB{privateB(Strings){}privatevoidfoo(){}}staticclassCextendsB{publicC(Strings){super(s);//callB(String),whichisprivate,andobviouslyaccessible}voidbar(){foo();//compilationerror(symbolunknown),asB.foo()isprivate}}}A的私有(private)成员,由于是私有(priva
在谈到构造函数时,我试图理解为什么类成员的可访问性之间存在差异。考虑以下示例:classA{staticclassB{privateB(Strings){}privatevoidfoo(){}}staticclassCextendsB{publicC(Strings){super(s);//callB(String),whichisprivate,andobviouslyaccessible}voidbar(){foo();//compilationerror(symbolunknown),asB.foo()isprivate}}}A的私有(private)成员,由于是私有(priva
“对于接口(interface)中的私有(private)方法的支持曾被考虑包含在JavaSE8中,作为增加对Lambda表达式支持的努力的一部分,但为了更好地专注于JavaSE8的更高优先级任务而被撤回。它是现在提议支持私有(private)接口(interface)方法,从而使接口(interface)的非抽象方法能够在它们之间共享代码。”http://openjdk.java.net/jeps/213的规范如是说并在错误报告中说https://bugs.openjdk.java.net/browse/JDK-8071453.但我真的想不出任何必要的用例,即使上面给出了简短的解释。
“对于接口(interface)中的私有(private)方法的支持曾被考虑包含在JavaSE8中,作为增加对Lambda表达式支持的努力的一部分,但为了更好地专注于JavaSE8的更高优先级任务而被撤回。它是现在提议支持私有(private)接口(interface)方法,从而使接口(interface)的非抽象方法能够在它们之间共享代码。”http://openjdk.java.net/jeps/213的规范如是说并在错误报告中说https://bugs.openjdk.java.net/browse/JDK-8071453.但我真的想不出任何必要的用例,即使上面给出了简短的解释。
如果仍然无法在包含类之外访问,那么在Java中将私有(private)内部类的成员声明为public的原因是什么?或者可以吗?publicclassDataStructure{//...privateclassInnerEvenIterator{//...publicbooleanhasNext(){//Whypublic?//...}}} 最佳答案 如果InnerEvenIterator类没有扩展任何类或实现任何接口(interface),我认为这是无稽之谈,因为没有其他类可以访问它的任何实例。但是,如果它扩展或实现了任何其他非私
如果仍然无法在包含类之外访问,那么在Java中将私有(private)内部类的成员声明为public的原因是什么?或者可以吗?publicclassDataStructure{//...privateclassInnerEvenIterator{//...publicbooleanhasNext(){//Whypublic?//...}}} 最佳答案 如果InnerEvenIterator类没有扩展任何类或实现任何接口(interface),我认为这是无稽之谈,因为没有其他类可以访问它的任何实例。但是,如果它扩展或实现了任何其他非私
是否可以使用Java反射从另一个类实例化私有(private)内部类。例如,如果我采用此代码publicclassMain{publicstaticvoidmain(String[]args){}}classOtherClass{privateclassTest{}}是否可以从main类中的main方法实例化并获得对Test的访问权限。 最佳答案 是的,您可以使用Java反射实例化私有(private)内部类。为此,您需要有一个外部类实例并调用内部类构造函数,该构造函数将在其第一个参数中使用外部类实例。classOuterClass
是否可以使用Java反射从另一个类实例化私有(private)内部类。例如,如果我采用此代码publicclassMain{publicstaticvoidmain(String[]args){}}classOtherClass{privateclassTest{}}是否可以从main类中的main方法实例化并获得对Test的访问权限。 最佳答案 是的,您可以使用Java反射实例化私有(private)内部类。为此,您需要有一个外部类实例并调用内部类构造函数,该构造函数将在其第一个参数中使用外部类实例。classOuterClass
我正在阅读EffectiveJava中的序列化章节。谁调用了readObject()和writeObject()?为什么将这些方法声明为私有(private)?以下是书中的一段代码//StringListwithareasonablecustomserializedformpublicfinalclassStringListimplementsSerializable{privatetransientintsize=0;privatetransientEntryhead=null;//OthercodeprivatevoidwriteObject(ObjectOutputStreams
我正在阅读EffectiveJava中的序列化章节。谁调用了readObject()和writeObject()?为什么将这些方法声明为私有(private)?以下是书中的一段代码//StringListwithareasonablecustomserializedformpublicfinalclassStringListimplementsSerializable{privatetransientintsize=0;privatetransientEntryhead=null;//OthercodeprivatevoidwriteObject(ObjectOutputStreams