这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个答案)Whatisthepointofsettersandgettersinjava?[duplicate](14个答案)关闭8年前。如果我可以通过getter-returnedreference改变private变量的值,那不是绕过了setter方法吗?这不是违背了getter-setter和私有(private)变量的目的吗publicclassTest{privateDimensioncannotBeChanged;publicTest(intheight,intwidth){
我在一些代码中发现了这个结构。让私有(private)静态类实现A有什么好处吗?这让我想起了C++中的Pimpl惯用语。在Java中使用Pimpl习惯用法有什么好处吗?publicabstractclassA{publicvoiddoStuff();publicstaticAgetNewInstance(){returnnewAImpl();}privatestaticclassAImplextendsA{publicvoiddoStuff(){....}}} 最佳答案 Isthereanybenefittohaveaprivate
我正在为类编写一个equals(Objectobj)函数。我看到可以从调用者访问obj的私有(private)字段。所以不要使用setter/getter:Odpother=(Odp)obj;if(!other.getCollection().contains(ftw)){}我可以直接访问该字段:Odpother=(Odp)obj;if(!other.collection.contains(ftw)){}这是不好的做法吗? 最佳答案 我总是倾向于使用getter,因为有时getter不仅仅是“return(foo)”。有时,如果它们
如何检查IP地址是否属于私有(private)类别?if(isPrivateIPAddress(ipAddress)){//dosomething}如有任何建议,我们将不胜感激。更新的答案privatestaticbooleanisPrivateIPAddress(StringipAddress){InetAddressia=null;try{InetAddressad=InetAddress.getByName(ipAddress);byte[]ip=ad.getAddress();ia=InetAddress.getByAddress(ip);}catch(UnknownHostE
我看到了这个问题Injectintoprivate,packageorpublicfieldorprovideasetter?关于如何手动注入(inject)带注解的私有(private)字段(方法是添加setter或通过构造函数)但是,重点在于应用服务器(如glassfish、axis2、jboss等)如何能够注入(inject)最终私有(private)字段(无需添加setter或构造函数到用户类)?引用引用的问题:publicSomeClass{@InjectprivateSomeResourceresource;}他们是否使用允许访问私有(private)字段的自定义JVM(非
在令人惊叹的“JavatheGoodParts”一书中,作者给出了一些代码,在其getter方法中返回一个对象的副本(与封装良好的字段一起使用),然后声明:Thisapproach,whichtriestoreturncopiesofprivatedataratherthanreferencestothatprivatedata,isgenerallyagoodidea为什么会这样?我认为封装的一个目标是确保没有人可以实际更改私有(private)成员。那我为什么要写这样的东西privatesomeTypefieldName=newsomeType();...像这样定义它的getter
我只是想澄清一下。-之间有什么区别?privatestaticintSTUDENT_AGE=18;和privatestaticfinalintSTUDENT_AGE=18;在场内?JonSkeet解释为“与特定实例完全无关”,好吧,我想我明白了。那么final在这种情况下到底做了什么?下面的代码不起作用是因为学生年龄被指定为静态最终年龄吗?这是否意味着默认年龄根本无法覆盖?那么是否可以创建指定年龄而非默认年龄的构造函数?privateStringmyName;privateStringmyAddress;privateintmyYearEnrolled;privateStringmyG
这之间有什么实际区别吗publicclassOuterClass{privateclassInnerClass{publicInnerClass(){}}}还有这个?publicclassOuterClass{privateclassInnerClass{privateInnerClass(){}}} 最佳答案 从另一个类访问私有(private)成员稍微复杂一些,因为JVM实际上不允许这样做。因此,编译器会注入(inject)访问器方法,这会使它稍微变慢或使您的堆栈跟踪更加复杂。出于这些原因,我将其保留为本地包。顺便说一句,抽象类
当我的内部类具有私有(private)方法或字段时,编译器必须创建合成的包保护访问器方法以允许外部类访问这些私有(private)元素(反之亦然)。为避免这种情况,我通常将所有字段、方法和构造函数设为包保护而不是私有(private)。但是类本身的可见性如何呢?是否有开销privatestaticclassA{A(){}}对比staticclassA{A(){}}请注意,构造函数在这两种情况下都受包保护,或者将类设为私有(private)会改变这种情况吗? 最佳答案 你试过编译它并比较字节码吗?这是我的结果。对于:publiccla
我熟悉Import-Package和Export-Package,但这对我来说是新的。它有什么作用? 最佳答案 在OSGi容器中运行时它什么都不做。事实上,OSGi规范中甚至没有提到它(我检查了R4)。但是,它可以在.bnd文件中指定,供bnd在构建时使用。如果是这样,它可用于确定bundle中的内容。当bnd构建一个bundle时,它会自动确定哪些类需要进入bundle。导出的包中的所有类都包括在内,它们(传递地)依赖的所有类也包括在内。这意味着如果一个类似乎没有被使用,那么它就不会被包含在包中。但是,您可以使用Private