general-protection-fault
全部标签 假设有以下基类:packagebg.svetlin.ui.controls;publicabstractclassControl{protectedintgetHeight(){//..}//...}另外,在同一个包中,有一个类继承了:packagebg.svetlin.ui.controls;publicabstractclassLayoutControlextendsControl{publicabstractvoidaddControl(Controlcontrol);//...}然后,在另一个包中有第三个类:packagebg.svetlin.ui.controls.scree
假设您必须访问您在代码中某处收到的Java对象的protected方法。你的解决方案是什么?我知道一种方法:您可以使用反射并在Method对象上调用setAccessible(true)。还有其他想法吗? 最佳答案 根据Javaaccessmodifiers,除了扩展对象(如果你收到对象就不能)是从与你收到的对象相同的包中的对象访问它。所以你的选择是在同一个包中创建一个包装类,它通过protected方法为你检索属性。 关于java-如何访问第三方库中protectedJava方法?,我
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion在Java中声明变量时,“protected”和“无访问修饰符”有什么区别?一样吗?
这是protected方法的文档:/**ConvertsjmusicscoredataintoaMIDISequence*/protectedjavax.sound.midi.SequencescoreToSeq(Scorescore)我创建了这个小类来扩展scoreToSeq方法来自的类:publicclassMidiSequenceextendsMidiSynth{publicSequencegetSequence(Scorescore){MidiSynthsynth=newMidiSynth();Sequencesequence=null;try{//HereIgettheerr
我有一个抽象类,如下所示:abstractclassAbstractFooimplementsBar{//Codegoeshere}但是,当我尝试使AbstractFooprotected时,我收到一个编译时错误,提示它是一个非法修饰符。protectedabstractclassAbstractFooimplementsBar{//Codegoeshere}为什么不能在Java中有一个protected抽象类?编辑:我应该提一下,这不是vanillaJava,实际上是Blackberry/J2ME。 最佳答案 正如许多其他人指出的
我正在阅读SybexCompleteJava2CertificationStudyGuide2005年4月(ISBN0782144195)。本书适用于想通过java认证的java开发者。在关于访问修饰符(以及其他修饰符)的一章之后,我发现了以下问题(#17):Trueorfalse:IfclassYextendsclassX,thetwoclassesareindifferentpackages,andclassXhasaprotectedmethodcalledabby(),thenanyinstanceofYmaycalltheabby()methodofanyotherinsta
背景:我注意到在许多项目中,几乎所有内部代码中的类都是公开的而不是最终的,即使它们不需要。然而,对我来说,不默认做出这个决定似乎是明智的,但只有当它们实际上是为了从系统的其他部分使用时才公开类。拥有包保护类是一种在模块之间强制执行边界的简单机制,并可作为类预期用途的文档。如果有一个(最好是免费的:-)工具来保护所有可以在不破坏程序的情况下被保护的类,并且可能使所有没有子类的东西成为最终的,那将是开始有意识地使用保护机制。(当然你需要事后调整。)你知道这样的工具吗?警告:我知道有更好的模块化机制,如OSGI和计划中的super包等。但在许多当前项目中,这不是一个选项,使用普通的旧Ja
我已经为特定的二进制格式(nfdump如果有人感兴趣)编写了一个解析器类,它使用了java.nio的MappedByteBuffer。读取每个几GB的文件。二进制格式只是一系列header和大部分固定大小的二进制记录,通过调用nextRecord()将其馈送到被调用方,nextRecord()会推送状态机,完成后返回null。它表现良好。它在开发机器上运行。在我的生产主机上,它可以运行几分钟或几小时,但似乎总是抛出“java.lang.InternalError:afaultoccurredinarecentunsafememoryaccessoperationincompiledJa
我发现了protected的这种用法为我的其他问题寻找解决方案时的修饰符:IgnoringcaseinstringswithunitilsReflectionComparator在org.unitils.reflectionassert.ReflectionComparatorFactory类有一个带有签名的方法:protectedstaticListgetComparatorChain(Setmodes)但这只是特例。毕竟我们总是可以扩展这样的任何非最终类并“覆盖”它是静态的protected新方法public修饰符。说,我们有一个类A:publicclassA{protecteds
我正在学习java中的访问级别,我创建了3个类:在包my.inheritance中我有A类和C类packagemy.inheritance;publicclassA{protectedinta=15;}packagemy.inheritance;publicclassC{publicstaticvoidmain(String[]args){Aa=newA();System.out.println(a.a);}}在另一个名为my.inheritance.test的包中,我有一个类B试图访问int值a的protected字段,但编译器对此提示!packagemy.inheritance.t