Tag: 私有

public方法在Java中返回私有类实例?

我有一个方法返回私有类的实例,我需要从不同的包访问其方法进行unit testing。 这些类存在于同一个文件中。 它是这样的: 档案:A.java public class A{ B b; public B getB(){ return b; } public setB(B b){ this->b = b; } } class B{ C c; public C getC(){ return c; } public setC(C c){ this->c = c; } } class C{ public int getInt(){ return 1; } } 所以……基本上问题是:B或C中的任何方法都能以某种方式到达吗? 我是否有义务将B和C放在不同的文件中并公开实现?

Java Reflection私有方法与参数最佳方法?

我试图使用javareflection调用私有方法我开发了一个小方法来调用其他方法迭代所有方法并按名称和参数类型进行比较我已成功调用4个方法。 我有一个问题。 1)。 这是最好的方法吗? 因为我理解class.getMethod只匹配公共方法。 Java内置了什么? 这是我的代码。 public class Compute { private Method getMethod(Class clazz,String methodName,Class…parametersClass) { outer: Method[] methods = clazz.getDeclaredMethods(); for(Method method:methods) { //comparing the method types… of the requested method and the real method….. if(method.getName().equals(methodName) && parametersClass.length== method.getParameterTypes().length)//it a possible match { Class[]arrayForRealParameters = method.getParameterTypes(); //comparing the method types… of the requested […]

自动将公共更改为私有(Java)

我正在对代码进行重构,从其他语言翻译成Java,我想自动完成。 我的问题是我有很多非私有的方法,但只是在声明它们的同一个类中被调用,我想让它们变成私有的。 我有很多课程,我想如果有一些东西可以帮助我半自动地做,我想知道它。 你知道我是否可以寻找这些方法让它们快速私密化? 我正在使用Eclipse。

superClass的私有成员是否由子类inheritance… Java?

我经历过这个: 子类是否inheritance私有字段? 但我还是很困惑…… 我说的只是inheritance而不是访问。 我知道他们在副class上并不明显。 但是子类’对象是否拥有超类中那些私有成员的自己的副本? 例如… class Base { private int i; } class Derived extends Base { int j; } 现在, Base b = new Base(); Derived d = new Derived(); int的大小是4 现在, b的大小是4,d的大小是8 要么 d的大小也只有4? 当然,当我说b和d而不是引用时,我正在谈论堆上的对象。 更新:我刚刚阅读了Kathy Sierra和Bert的SCJP书……它说它们不是inheritance的……我发布了这个更新,因为仍然有很多人说是的…

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

对私有方法测试的意义有不同的看法,例如, 这里和这里 。 我个人认为这是有道理的,问题是如何正确地做到这一点。 在C ++中你可以使用#define hack或者使测试类成为friend ,在C#中有InternalsVisibleToAttribute ,但是在Java中我们必须使用reflection或使它们“可见以进行测试”并对它们进行注释以便使它们成为可能 。意图清楚。 两者的缺点应该非常清楚。 我认为应该有更好的东西。 从…开始 public class Something { private int internalSecret() { return 43; } } 能够在测试代码中调用私有方法会很好 @MakeVisibleForTesting Something something = new Something(); Assert.assertEquals(43, something.internalSecret()); 这里的注释会使用reflection静默地将所有调用转换为something私有方法。 我想知道龙目岛是否可以做到(并会问作者)。 做这么多魔术很可能certificate太复杂了,无论如何它需要一些时间,所以我正在寻找一些替代方案。 也许用@Decapsulate注释正在测试的类,并使用注释处理器生成类Decapsulated_Something看起来像 public class Decapsulated_Something { public Decapsulated_Something(Something delegate) { this.delegate = delegate } public boolean internalSecret() { // […]

私人类声明

可能重复: Java:为什么我们可以将顶级类定义为私有? 为什么我们不能宣布私人外部阶级? 如果我们可以拥有内部私人课程那么为什么我们不能拥有外部私人课程……?

Java – 私有和包私有枚举构造函数之间的区别

最近我经常使用Enumerations。 所以我想知道…… 私有Enum构造函数和枚举构造函数与任何可见性修饰符(package-private)之间是否有任何区别?

Java – 类方法可以看到同类参数的私有字段

我遇到了一个相当奇怪的行为,并且不确定这是一个Java问题还是只是Eclipse的问题。 请使用以下代码: class Foo { private String text; public void doStuff(Foo f) { System.out.println(f.text); } } 这里的问题是,为什么f.text可以访问? 这是一个私有领域,所以根据我的逻辑,它不应该,但IDE似乎认为它是。

JavaDoc:私有字段和方法

我应该在私有字段和方法中使用哪些JavaDoc标记来生成javaDoc描述?

在Java中,让对象的成员公开可用是不是一个坏主意?

我的应用程序中有一个数据类。 我的应用程序永远不会被用作公共API,我将是唯一一个在我的项目中开发代码的人。 我试图保存每一盎司的处理器和内存电源。 在我的数据类中使我的数据成员具有公共/受保护/默认保护是不是一个坏主意,这样我就不必使用getter了? 使用getter需要更多的内存和堆栈的创建……我相信这是不必要的。 我在使用getter时可以看到的唯一原因是保护/隐私,但如果我是唯一的编码器而没有其他人会使用我的API,那么不使用getter是一个坏主意吗? 如果这是愚蠢的,请告诉我。