我有以下类(class)Hello.javapackagespeak.hello;importjava.util.Map;importspeak.hi.CustomMap;importspeak.hi.Hi;publicclassHello{privateHihi;Hello(Hihi){this.hi=hi;}publicStringsayHello(){return"Hello";}publicStringsayHi(){returnhi.sayHi();}publicMapgetMap(){returnhi.getMap();}publicvoidclearMap(){hi.ge
在将“最终”添加到myItem声明之前,我首先收到此警告:Privatefield'myItem'couldbemadefinal;itisonlyinitializedinthedeclarationorconstructor.privateItemmyItem;添加final后,这是我收到的警告:'private'modifieroutoforderwiththeJLSsuggestions.finalprivateItemmyItem;有人知道我为什么会收到这个吗?我做了一些研究,但似乎找不到任何方法来解决这个问题。 最佳答案
我读到这样做:publicfinalvoidfoo(){}等于:privatestaticvoidfoo(){}两者都意味着该方法不可重写!但是如果一个方法是私有(private)的,我看不到等价性它自动不是可访问... 最佳答案 你确实不能@Override两种方法。你只能@Override一个非final实例方法。如果是final,那你就没办法了@Override它如果是static,那么它就不是一个实例方法开始不他们“相等”是真的,因为一个是privatestatic,另一个是publicfinal.他们有不同的可访问性级别i
需要对私有(private)变量和继承有更多的了解。早些时候我的理解是如果一个类中有字段并且当我继承该类时,不受访问(私有(private)变量)限制的字段将存在于继承的类中。但如果有公共(public)g/setter方法,我可以在基类中使用私有(private)变量。我如何想象基类中的私有(private)变量? 最佳答案 classA{privateinta;publicA(inta){this.a=a;}publicintgetA(){returna;}}classBextendsA{publicB(intb){super(
有人告诉我,对于Java子类,它可以继承其父类(superclass)的所有成员。那么这是否意味着私有(private)成员(member)呢?我知道它可以继承protected成员。谁能给我解释一下。我现在完全糊涂了。 最佳答案 不,私有(private)成员不继承,因为私有(private)成员的范围仅限于定义它的类.只有public和protected成员被继承。来自JavaDocumentation,PrivateMembersinaSuperclassAsubclassdoesnotinherittheprivatemem
我在使用R中的包加载数据时遇到了这个错误,在这个包中,使用了pakcagerJava。每次运行一个函数,报错是Errorinls(envir=envir,all.names=private):invalid'envir'argument这个包已经被证明没有任何问题,只是我的电脑环境问题。我调试的时候发现在之前的最后一个进程中ls(envir=envir,all.names=private)变量envir是NULL,我认为应该是一些值但不是NULL。经过一些尝试,我解决了这个问题,每次都安装rJava。此外,只有当错误出现时,我才安装“rJava”,它才会起作用。如果我第一次安装,它不会
如果您在Java中有一个私有(private)静态嵌套类,是否仍然建议使用getter和setter而不是直接访问字段?一个例子。直接现场访问:publicclassApplication{privateListmyInnerClassList;//...publicvoidfoo(){MyInnerClassinner=newMyInnerClass();inner.bar=50;myInnerClassList.add(inner);}privatestaticclassMyInnerClass{privateintbar;}}与封装:publicclassApplication{
这个问题在这里已经有了答案:WhyisitallowedtoaccessJavaprivatefieldsviareflection?(7个答案)关闭6年前。使用反射时需要注意哪些潜在问题。我在反射(reflection)中很困惑,为什么java提供这种访问私有(private)数据成员的功能。私有(private):就像我想的那样,只有声明它的类才能看到它。那为什么可以访问其他类中的私有(private)事物呢?这个术语(反射)完全溢出了我对java中私有(private)(访问说明符)属性的概念。我访问了很多关于这个主题的链接,但没有给出关于这个主题的完整解释。例如:package
在Java应用程序中,我声明了两个类,一个类(One)在ClassLoaderA中声明,另一个类(Two)在ClassLoaderB中声明。ClassLoaderA是B的parent。这两个类都具有相同的包(即:org.test)。虽然A是B的父类加载器,但我似乎无法从Two事件访问One的包私有(private)方法或变量,我得到一个IllegalAccessError异常。我了解包私有(private)可访问性基于包名称和类加载器。有没有办法重新关联One和Two,以便Two可以访问One的封装私有(private)元素?下面是证明这一点的测试:packageorg.test;pu
已经阅读了如何通过以下步骤使类不可变不要提供“setter”方法——修改字段或字段引用的对象的方法。将所有字段设为最终字段和私有(private)字段。不允许子类覆盖方法。最简单的方法是将类声明为final。一种更复杂的方法是将构造函数设为私有(private)并在工厂方法中构造实例。如果实例字段包含对可变对象的引用,则不允许更改这些对象:一种。不要提供修改可变对象的方法。b.不要共享对可变对象的引用。永远不要存储对传递给构造函数的外部可变对象的引用;如有必要,创建副本并存储对副本的引用。同样,必要时创建内部可变对象的副本,以避免在方法中返回原始对象。我不确定我是否清楚地理解私有(pr