Tag: 非静态

什么是非静态初始化块的替代方案?

我的项目有一些喜欢非静态初始化块的开发人员。 有什么替代方案 ,这种替代方案的缺点是什么? 我猜:在构造函数中初始化值? 我们为什么要使用非初始化块? 据我所知,“初始化块”用于在实例化类时设置值。 那么构造函数是不够的? public class BlockTest { String test = new String(); //Non-static initialization block { test = “testString”; } } 这个区块让我感到困惑,导致可读性降低。 感谢您的答复!

Powermockvalidation非静态方法中的私有静态方法调用

亲爱的stackoverflow同志,我再次遇到一个问题,让特定的PowerMock / Mockito案例起作用。 问题是,我需要validation私有静态方法的调用,该方法是从公共非静态方法调用的 。 我之前发布的一个类似的示例如何抑制和validation私有静态方法调用? 这是我的代码: class Factory { public String factorObject() throws Exception { String s = “Hello Mary Lou”; checkString(s); return s; } private static void checkString(String s) throws Exception { throw new Exception(); } } 这是我的测试类: @RunWith(PowerMockRunner.class) @PrepareForTest(Factory.class) public class Tests extends TestCase { public void testFactory() throws Exception { Factory […]

main类中的static和构造函数中的非static

我只是想看看我是否能完全理解静态的概念以及主类中静态的原因。 关键字static指的是主类。 主类中的方法是静态的原因是因为主类不处理对象而是处理类本身。 但是构造函数处理对象因此使用非静态构造函数,因为对象具有独特的特性,并且使它们静态是没有意义的。 如果有人能看出我在陈述中是否犯了错误,或者能指引我走向正确的方向,那将对我有所帮助! 🙂

从其他java类调用变量

我有这个loginscreen类; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package program; import java.sql.*; import javax.swing.JOptionPane; /** * * @author Lacrymae_Ev */ public class loginscreen extends javax.swing.JFrame { public String username; public […]

无法从静态上下文引用非静态变量

我写了这个测试代码: class MyProgram { int count = 0; public static void main(String[] args) { System.out.println(count); } } 但它给出了以下错误: Main.java:6: error: non-static variable count cannot be referenced from a static context System.out.println(count); ^ 如何让我的方法识别我的类变量?

什么案例需要Java中的同步方法访问?

在什么情况下需要同步访问实例成员? 我理解,对类的静态成员的访问总是需要同步 – 因为它们在类的所有对象实例中共享。 我的问题是,如果我不同步实例成员,我什么时候会不正确? 例如,如果我的class级是 public class MyClass { private int instanceVar = 0; public setInstanceVar() { instanceVar++; } public getInstanceVar() { return instanceVar; } } 在什么情况下(使用类MyClass )我需要有方法: public synchronized setInstanceVar()和public synchronized getInstanceVar() ? 提前感谢您的回答。

为什么我得到“无法从静态上下文引用的非静态变量”?

我有一个非常简单的类,我想用它作为另一个的子类。 但是当我把它的代码放在父类的时候,我得到: 非静态变量,不能从静态上下文引用 另一方面,当我将子类GenTest的类代码放在“父级”类代码之外时 – JavaApp1我没有得到这个错误。 public class JavaApp1 { class GenTest { @Deprecated void oldFunction() { System.out.println(“don’t use that”); } void newFunction() { System.out.println(“That’s ok.”); } } public static void main(String[] args) { GenTest x = new GenTest(); x.oldFunction(); x.newFunction(); } } 为什么会这样?