这个问题在这里已经有了答案:HowdoItestaclassthathasprivatemethods,fieldsorinnerclasses?(58个答案)关闭去年。我有一个类负责将契约(Contract)从CSV文件导入数据库。类本身只有一个启动导入的公共(public)方法,其他方法都是私有(private)的(因为只有类本身会使用,并且它们持有逻辑)。我开始使用Spock对这个类进行测试,并且有很多私有(private)方法,我应该如何测试它?我应该将它们公开进行测试吗?只测试主要方法,公共(public)方法?最好的是什么?
是否可以使用FindBugs检测源代码树中未使用的方法?我在SO上看到一些帖子,用户声称这样做,其他一些帖子询问如何在FB中执行此操作,还有一些帖子声称FB不能这样做。有人知道这是怎么做到的吗?我只对未从其他地方明确调用的方法感兴趣,我不关心反射。 最佳答案 作为FindBugs团队的一员,我可以告诉您,不幸的是,FindBugs不会这样做。如果您搜索bugpatterns在我们的网站上,唯一提及的“未使用”检测器是针对未使用的字段。 关于java-findbugs可以检测未使用的公共(
我有以下类(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
我有一个任务,需要用参数(StringbookNum、StringbookTitle、intqoh、doublebookPrice)创建BookInventory对象的数组列表。其中bookNum是一本书的带连字符的ISBN号。创建这个数组后,我需要使用Collections类的排序方法。在我的实体BookInventory类中,我需要编写一个compareTo(),它将最终按bookNum(它是一个字符串)对数组列表进行排序。我该怎么做呢?这是我第一次遇到这个,我不明白。 最佳答案 这应该让你开始:publicclassBookI
在将“最终”添加到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(
对于Javamain方法,我应该按照什么特定顺序编写以下代码?publicstaticvoidmain()换句话说,我可以按任意顺序重新洗牌public、static、void吗?为什么或为什么不? 最佳答案 void是返回类型,所以它必须放在最后。其他的可以改组(参见section8.4oftheJavaLanguageSpecification以获得更多详细信息),但按照惯例,访问修饰符通常在大多数其他方法修饰符之前,除了注释通常先行(同样,只是按照惯例)。 关于Java-公共(pu
有人告诉我,对于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”,它才会起作用。如果我第一次安装,它不会