草庐IT

public_private

全部标签

java - Apache 公共(public) CLI : how to prevent using short-name for options?

在ApacheCommonsCLI库中,是否可以绕过短名称的使用,从而强制用户使用长名称?通常,选项定义如下:newOption("u","username",true,"automaticusername")我想禁止使用“u”。但是,如果我用null或空字符串替换它,就会出现异常...为什么有这个要求?我希望我的所有选项都只采用--optionName=optionValue的形式,因为我的应用程序的某些部分是SpringBoot并且SpringBoot默认识别这种格式的选项。此外,为了在开发人员和用户之间保持一致并简化文档,我发现如果我们有一种独特的方式来使用一个选项而不是2个选项

java - 使用 Spock 模拟 Java 中的私有(private)静态最终变量

我正在尝试使用Groovy编写一些Spock测试来测试一些Java代码(特别是servlet过滤器)。我有一些privatestatic和privatestaticfinal变量我想模拟,但我无法确定是否有办法做到这一点。我知道metaClass可用于方法,是否有类似的变量?例如,我有:publicclassMyFilterimplementsFilter{privatestaticWebResourceRESOURCE;privatestaticfinalStringCACHE_KEY="key-to-be-used-for-cache";...actualmethods,etc..

java - 检索 Spring Security 的身份验证,即使在具有过滤器 ="none"的公共(public)页面上

假设我有一个名为faq.html的简单页面。我希望这个页面可以公开访问,所以我应用了通常的SpringSecurity配置:我们还假设如果用户在验证后到达此页面,我想在页面上打印“HiFirstnameLastname”。对于需要身份验证的页面,我简单地输入theresultofthefollowing进入我的ModelMap,然后在我的View中可以访问这些名称:SecurityContextHolder.getContext().getAuthentication().getPrincipal()这不适用于faq.html,大概是因为当您指定filters="none",然后调用g

java - 使用 java.lang.invoke.MethodHandle 调用私有(private)方法

如何使用方法句柄调用私有(private)方法?据我所知,只有两种可公开访问的Lookup实例:MethodHandles.lookup()MethodHandles.publicLookup()并且都不允许不受限制的私有(private)访问。有一个非公开的Lookup.IMPL_LOOKUP可以满足我的要求。是否有一些公共(public)方式来获取它(假设SecurityManager允许)? 最佳答案 事实证明,使用Lookup#unreflect(Method)并暂时使方法可访问是可能的(除非在程序初始化期间完成,否则可能会

java - Spring/Hibernate如何访问私有(private)成员?

如您所知,Spring可以为私有(private)实例变量注入(inject)值,Hibernate可以访问持久化类的私有(private)变量。但是,我什至不能通过反射调用类的protected方法!Spring和Hibernate怎么能像那样公然破坏安全性呢?更重要的是,我该怎么做?:D 最佳答案 在没有禁止安全管理器的情况下运行时,可以通过反射获取相应方法或字段的实例并调用setAccessible()在上面。使用Java安全管理器,您当然可以通过编写自定义策略来禁用它。 关于ja

Java通过反射访问私有(private)属性

我有以下包结构和类。packageXClassAprivatestringfieldX;protectedstringgetFieldX(){returnfieldX};packageYClassBextendsAClassCextendsB我有ClassC对象并试图通过反射获取fieldX。Classpartypes[]=newClass[0];Objectarglist[]=newObject[0];MethodgetContextMethod=ClassC.class.getMethod("getFieldX",partypes);StringretValue=(string)g

java - 在映射器文件中访问mybatis sql中的公共(public)静态最终字符串

我有一个用MyBatis映射器文件编写的sql,它是这样的:selecta,b,cfromtbl_namewhered=?d的占位符值应该是在名为Constants.java的文件中声明的常量作为:publicstaticfinalStringd="d_value";如何在不实际传递参数的情况下用值替换占位符构造?我试过#{com.pkg.name.Constants.d}但它没有用。没有硬编码!!! 最佳答案 SELECT*FROMStoreWHEREtype=${@foo.product.constant.StoreType@C

java - 包保护类中的公共(public)方法是否有任何理由?

我想知道在一个受包保护的类中,一个方法是公共(public)的还是包保护的是否有任何区别。classExample{publicvoidtest(){}}代替classExample{voidtest(){}}我想最大的可见性是由类(class)给出的。而一种方法只能降低能见度,提高能见度没有效果。但它是有效的语法,所以也许我监督了什么? 最佳答案 如果我们将Example子类化为public类,那么包外的代码可以使用子类实例访问test()方法,如果它是public。例子:packageA;classExample{publicv

java - 为什么分包看不到包私有(private)类?

好的,我有这个项目结构:包A.BclassSuperClass(这个类被标记为packageprivate)包A.B.C类子类(继承自父类(superclass))我不想让SuperClass公开可见...它实际上只是这个特定项目(A.B)的实用程序类。在我看来,SubClass应该可以看到SuperClass,因为包A.B.C是A.B的子包...但事实并非如此。解决此问题的最佳方法是什么?我认为将A.B.C中的所有内容移至A.B或将A.B移至A.B.C是没有意义的...主要是因为可能会有一个A.B.D也继承自A.B中的内容...我对Java有点陌生,所以请保持友好:D(我是C++和.

java - 在 Eclipse 中查找未使用的公共(public)成员

我有一个有1600个公共(public)静态成员的类。我必须找到并删除未使用的。有没有办法在Eclipse中做到这一点。 最佳答案 存在一个Eclipse插件UnusedCodeDetector(http://www.ucdetector.org/)。它可以处理特定文件或整个项目,搜索未使用的成员/方法。 关于java-在Eclipse中查找未使用的公共(public)成员,我们在StackOverflow上找到一个类似的问题: https://stackov