假设您必须访问您在代码中某处收到的Java对象的protected方法。你的解决方案是什么?我知道一种方法:您可以使用反射并在Method对象上调用setAccessible(true)。还有其他想法吗? 最佳答案 根据Javaaccessmodifiers,除了扩展对象(如果你收到对象就不能)是从与你收到的对象相同的包中的对象访问它。所以你的选择是在同一个包中创建一个包装类,它通过protected方法为你检索属性。 关于java-如何访问第三方库中protectedJava方法?,我
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion在Java中声明变量时,“protected”和“无访问修饰符”有什么区别?一样吗?
在Scala应用程序中,尝试使用javaniotry-with-resource构造从文件读取行。Scala版本2.11.8Java版本1.8try(Streamstream=Files.lines(Paths.get("somefile.txt"))){stream.forEach(System.out::println);//willdobusinessprocesshere}catch(IOExceptione){e.printStackTrace();//willhandlefailurecasehere}但是编译器会抛出类似◾未找到:值(value)流try没有成功的尝试或最
这是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。 最佳答案 正如许多其他人指出的
这个问题在这里已经有了答案:Correctidiomformanagingmultiplechainedresourcesintry-with-resourcesblock?(8个答案)关闭5年前。我在try-with-resources中找到了这个例子Java文档:staticStringreadFirstLineFromFile(Stringpath)throwsIOException{try(BufferedReaderbr=newBufferedReader(newFileReader(path))){returnbr.readLine();}}如果BufferedReader
我正在阅读SybexCompleteJava2CertificationStudyGuide2005年4月(ISBN0782144195)。本书适用于想通过java认证的java开发者。在关于访问修饰符(以及其他修饰符)的一章之后,我发现了以下问题(#17):Trueorfalse:IfclassYextendsclassX,thetwoclassesareindifferentpackages,andclassXhasaprotectedmethodcalledabby(),thenanyinstanceofYmaycalltheabby()methodofanyotherinsta
背景:我注意到在许多项目中,几乎所有内部代码中的类都是公开的而不是最终的,即使它们不需要。然而,对我来说,不默认做出这个决定似乎是明智的,但只有当它们实际上是为了从系统的其他部分使用时才公开类。拥有包保护类是一种在模块之间强制执行边界的简单机制,并可作为类预期用途的文档。如果有一个(最好是免费的:-)工具来保护所有可以在不破坏程序的情况下被保护的类,并且可能使所有没有子类的东西成为最终的,那将是开始有意识地使用保护机制。(当然你需要事后调整。)你知道这样的工具吗?警告:我知道有更好的模块化机制,如OSGI和计划中的super包等。但在许多当前项目中,这不是一个选项,使用普通的旧Ja
事实证明,几乎没有人正确关闭Java中的资源。程序员要么不用try-finally完全阻止,或者只输入resource.close()在finally这也是不正确的(因为Throwable来自close()可以隐藏来自tryblock的Throwable)。有时他们会放类似IOUtils.closeQuietly()的东西with仅适用于InputStream,但不适用于OutputStream.try-with-resources解决了所有这些问题,但仍有大量项目使用Java6编写。模拟try-with-resources的最佳方式是什么?在Java6中?现在我使用GuavaClos
我发现了protected的这种用法为我的其他问题寻找解决方案时的修饰符:IgnoringcaseinstringswithunitilsReflectionComparator在org.unitils.reflectionassert.ReflectionComparatorFactory类有一个带有签名的方法:protectedstaticListgetComparatorChain(Setmodes)但这只是特例。毕竟我们总是可以扩展这样的任何非最终类并“覆盖”它是静态的protected新方法public修饰符。说,我们有一个类A:publicclassA{protecteds