草庐IT

private-messaging

全部标签

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

java - 如何解决Primefaces中的 "p:message not working"?

我正在构建一个允许用户输入数据库连接参数的表单。输入参数后用户可以测试(btnTester)是否可以使用其参数建立连接。在所有情况下,都会为用户生成一条消息。这里是来自支持bean代码的连接尝试失败的示例:(...)addMessage(null,newFacesMessage(FacesMessage.SEVERITY_ERROR,"Connectionfailed.",t.getLocalizedMessage()));(...)这是表单代码。我希望消息出现在p:message中。不幸的是,什么也没有发生。按钮后不显示任何消息(连接成功与否):\即使将全局属性设置为false或tr

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

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

java - 覆盖 Spring :message tag with database values

我正在使用Spring来显示来自属性文件的消息。我希望能够覆盖标记以使用基于登录用户的数据库中的值。如果该值不存在,我希望它像现在一样默认为属性文件中当前的值。有人可以帮我处理这段代码吗?我读过AbstractMessageSource,但不清楚如何实现它。谢谢 最佳答案 您必须实现自定义消息源。它是一个扩展AbstractMessageSource并实现抽象resolveCode(java.lang.String,java.util.Locale)方法的类。几乎有samequestion在SO上(它是Grails的解决方案),但我

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

java - 公开类,但对 JAR 文件保持私有(private)

有没有办法使Java类公开但仅对JAR文件公开?也就是,它不是私有(private)包,而是公共(public)包,但不是JAR公共(public)包?假设我有这样的结构:project/package1/One.javapackage2/Two.javapackage3/Three.java由于3个.java文件位于不同的包中,因此我需要将其公开。但是有没有办法让它们只对包含该项目的JAR公开?这样如果另一个项目导入JAR,它就看不到某些公共(public)类/字段? 最佳答案 使用项目Jigsaw在Java9中,您可以完全做到这