草庐IT

java - 访问变量的 getter 方法调用是否比在类中直接访问变量更好

我只是想知道在类实例中使用getter方法访问类变量是否可取,以及直接访问是否存在任何明显的性能差异。尤其是在jvm中预计会生成很多对象的情况下。 最佳答案 在Java中,约定从类外部通过getter/setter访问所有字段。从类内部,您通常直接访问字段。但是,您也可以根据需要通过getter/setter访问它们。重要的是要知道这只是一个约定。许多其他编程语言没有这样严格的规则或其他概念。所以你不是被迫这样做的。但这是一个很好的做法。并且:不要介意性能!使用getters/setters不会影响应用程序的性能。JVM/Java就

java - 在类 C 的方法 m 中,this.getClass() 不总是 C 吗?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。在类C的方法m中,this.getClass()不总是C吗?

java - 在类 Test 中实例化类 Test 的成员是递归吗?

这是递归吗?publicclassTest{Testtest=newTest();publicstaticvoidmain(String[]args){newTest();}}关于instanceinitalizer的版本呢??publicclassTest{{Testtest=newTest();}publicstaticvoidmain(String[]args){newTest();}}我在问,因为我更新了myoldanswer,它展示了如何在没有递归的情况下生成StackOverflowError,但现在我不能100%确定上面的代码是否是递归的。 最

java - 静态 block 和在类中分配静态之间的区别?

下面两种静态变量的初始化有什么区别吗:classClass1{privatestaticVarvar;static{var=getSingletonVar();}}classClass2{privatestaticvar=getSingletonVar;}这两种初始化静态变量的不同方式在功能上是否相同? 最佳答案 是的,它在功能上是一样的。来自JavadocThereisanalternativetostaticblocks—youcanwriteaprivatestaticmethod:classWhatever{publicst

java - FindBugs 拒绝在类路径上找到 bcel jar

我一生都在尝试让FindBugs(2.0.1)作为我的命令行Ant构建的一部分运行。我下载了FindBugsJAR并将其解压缩到/home/myuser/java/repo/umd/findbugs/2.0.1/findbugs-2.0.1:如您在屏幕截图中所见,在/home/myuser/java/repo/umd/findbugs/2.0.1/findbugs-2.0.1/lib下有一个名为bcel-1.0.jar,如果你打开它,你会看到我已经深入到一个名为org.apache.bcel.classfile.ClassFormatException的类。坚持这个想法。然后我将/ho

java - Gradle 子项目不包含在类路径中

我们设置了2个项目,1个主项目和1个子项目,它们是Java项目。它们都在同一个目录下。目录结构如下:./dev./Project_Abuild.gradlesettings.gradle./Project_Bbuild.gradleProject_A包含Project_B。Project_Asettings.gradle看起来像:includeFlat'Project_B'Project_Abuild.gradle包含:compileproject(':Project_B')问题从命令行(gradlewcleanbuild)编译时,Project_A遗漏了Project_B中的类。看起

java - java中如何限制变量不能在类外访问?

我正在使用java。我知道通过使用private访问修饰符我们可以限制。但是使用ReflectionAPI我仍然可以访问类外的变量。那么这里的private修饰符有什么用呢? 最佳答案 private阻止您使用Java从其他类访问它。但是使用JNI或库你可以做不同的事情。您可以通过安全管理器防止反射,但这很少需要。注意:某些库(如Serialization)需要能够访问私有(private)字段才能工作。 关于java-java中如何限制变量不能在类外访问?,我们在StackOverfl

java - 成员应该在类中初始化还是在构造函数中初始化?

初始化变量,特别是类级别的对象引用是一个好习惯吗?请考虑以下示例;publicclassMyClass{privatestaticMyObjectmyObject;publicstaticvoidmain(String[]args){myObject=newMyObject();}}或publicclassMyClass{privateMyObjectmyObject=newMyObject();publicstaticvoidmain(String[]args){//Othercode}}哪种方式最好?请指导我了解两者的优缺点。问候。 最佳答案

java - 如何确保在类中重新实现 toString() 方法?

假设我有一个接口(interface)和许多实现该接口(interface)的类。我想在每个类中强制覆盖toString()的默认实现(也就是说,如果某些类不覆盖它,那将导致编译错误)。有可能实现吗?在接口(interface)体中声明publicabstractStringtoString();,带或不带@Override注解,都是合法的,但没有任何作用。 最佳答案 是的,有点。protectedabstractStringinternToString();然后@OverridepublicStringtoString(){ret

Java:如何加载已经在类路径上的类(及其内部类)?

如何加载已经在类路径上的类、实例化它,以及实例化其中定义的任何内部类?如:publicclassTestClass{publicclassInnerClass{}} 最佳答案 内部类不能存在于父类之外。您需要先构造父类。没有反射(reflection),这看起来像:InnerClassinnerClass=newTestClass().newInnerClass();在反射中,需要在构造内部类时传入父类。ObjecttestClass=Class.forName("com.example.TestClass").newInstanc