草庐IT

more-private

全部标签

java - 访问修饰符(公共(public)、私有(private)、内部、 protected )的安全影响

实际做C#、Java等编程语言中类、属性或方法的访问修饰符对应用程序的安全性有影响吗?它们是否也以某种方式防止未经授权的访问?还是它们只是用于清晰和适当编程的工具? 最佳答案 不,访问修饰符不提供安全保护。它们只是为了方便开发人员而存在,例如它们有助于实现良好的编码实践并有助于编程模式。通过在Java/C#和其他语言中使用反射,可以很容易地访问其他无法访问的修饰符。 关于java-访问修饰符(公共(public)、私有(private)、内部、protected)的安全影响,我们在Sta

java - JaCoCo 和私有(private)默认构造函数的遗漏

我想看一个示例来防止JaCoCo将私有(private)空构造函数报告为Java类中的未覆盖代码。在我的maven插件配置中CLASSJAVAC.SYNTHCLASSJAVAC.SYNTHMETH构造函数没有类似的东西吗? 最佳答案 这是不支持的。officialdocumentation说:FiltersforCodewhereTestExecutionisQuestionableorImpossiblebyDesignPrivate,emptydefaultconstructors-assumingnocallstoitPlai

Java 在构造函数中设置私有(private)字段

常见的设计实践是将实例变量设为私有(private),并使用公共(public)getter和setter来访问它们。但我多次在Internet上看到代码示例,其中的构造函数直接将值分配给私有(private)实例变量,而不是使用构造函数内部的setter。我错过了什么吗?publicclassPerson{privateStringname;publicPerson(Stringname){//isthisright,seemslikethewholeencapsulationpurposeisdefeatedthis.name=name;//shouldn'tthisbeuseds

java - 使 XStream 忽略一个特定的私有(private)变量

我目前正在为其编写保存函数的类有一个小问题。我正在使用XStream(com.thoughtworks.xstream)使用DOMDriver将类序列化为XML。这个类看起来像这样:publicclassWorld{privateConfigurationconfig;publicWorld(Configurationconfig){this.config=config;}}所以,这里的问题是我不想在序列化世界时序列化Configuration,而是我想在调用fromXml()时为XStream提供一个预构建的Configuration实例。这里的问题主要是类设计,Configurat

用于测试私有(private)方法的 Java 工具?

对于测试私有(private)方法的意义,众说纷纭,如here和here.我个人认为是有道理的,问题是如何正确地去做。在C++中,您可以使用#definehack或者使测试类成为friend,在C#中有InternalsVisibleToAttribute,但在Java中我们要么必须使用reflection或使它们“对测试可见”和annotatethemassuch为了明确意图。两者的缺点应该很明显。我认为应该有更好的东西。开始于publicclassSomething{privateintinternalSecret(){return43;}}如果能够像这样在测试代码中调用私有(pr

Java 正则表达式 : How to match one or more space characters

如何在Java正则表达式中匹配多个空格字符?我有一个要匹配的正则表达式。当我有两个或更多空格字符时,正则表达式会失败。publicstaticvoidmain(String[]args){Stringpattern="\\b(fruit)\\s+([^a]+\\w+)\\b";//Match'fruit'notfollowedbyawordthatbeginswith'a'Stringstr="fruitapple";//OnespacecharacterwillnotbematchedStringstr_fail="fruitapple";//Twospacecharacterswi

java - Mockito/Powermockito 模拟私有(private)无效方法

我需要使用mockito和powermock模拟一个不带参数的私有(private)void方法。该方法属于一个spy实例。我知道我需要这样做的事实表明代码不好,但我正在处理一个旧项目,将单元测试从一个测试框架转换为另一个测试框架。如果有人有任何建议,我们将不胜感激。谢谢!到目前为止我已经试过了:PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));但是我得到这个错误:Nomethodfoundwithname'method'withparametertypes:[]

java - 为什么 java.util.Objects 私有(private)构造函数抛出 assertionError

我观察到java.util.Objects有一个构造函数会抛出AssertionError。*@since1.7*/publicfinalclassObjects{privateObjects(){thrownewAssertionError("Nojava.util.Objectsinstancesforyou!");}...这是一个静态实用程序类,因此不需要实例。据我所知,一个可能的原因是,开发人员试图确保不创建此类的实例。因为任何人都可以调用此构造函数的唯一方法是通过反射。还有其他原因需要这种构造函数吗? 最佳答案 唯一的目的

java - 我可以静态导入私有(private)子类吗?

我有一个私有(private)的枚举,不会在类外公开。无论如何我可以做那种类型的静态导入,这样我就不必每次都输入枚举类型了吗?或者有更好的写法吗?示例:packagekip.test;importstatickip.test.Test.MyEnum.*;//compileerrorpublicclassTest{privatestaticenumMyEnum{DOG,CAT}publicstaticvoidmain(String[]args){MyEnumdog=MyEnum.DOG;//thisworksbutIdon'twanttotype"MyEnum"MyEnumcat=CAT

java - 在运行时,private、public、package 关键字之间有什么区别吗?

我知道Java在开发过程中有这些serval关键字来标识变量范围,但我想知道这在生产环境中是否有所不同,或者只是为了编码人员的兴趣?谢谢。 最佳答案 辅助功能也在运行时强制执行。如果某些代码试图访问它不应该访问的成员,则会抛出IllegalAccessException或IllegalAccessError。这是一个快速演示:publicclassAccessTest{publicintpublicNumber;privateintsecretNumber;}publicclassClient{publicstaticvoidmai