【java – 静态方法和非静态方法有什么区别?】教程文章相关的互联网学习教程文章

模拟Swing静态方法时的java.lang.VerifyError

我正在使用PowerMock来模拟JOptionPane上的静态方法,但是JRE似乎并不是非常符合它,因为我在初始化时得到了一个java.lang.VerifyError,因为它检查了自己的包和类的完整性. 我有一些解决方法,但我对它们中的任何一个都不满意: >为JOptionPane编写一个对象包装器,并为我需要的方法(showInputDialog等)提供一个接口,这样我就可以注入一个mock或stub来进行测试.这只是将问题移到别处,因为我仍然需要覆盖我的包装器方法,但至少它们将与逻...

Java static关键字以及Java静态变量和静态方法【图】

static 修饰符能够与变量、方法一起使用,表示是“静态”的。 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。 请看下面的例子: public class Demo { static int i = 10; int j; Demo() { this.j = 20; } public static void main(String[] arg...

Java重写静态方法【代码】

我发现自己需要覆盖静态方法,仅仅因为它最有意义,但我也知道这是不可能的. 超类Entity.java:abstract public class Entity<T> {public Entity() {//set up database connection}abstract public static Map<Object, T> getAll();abstract public void insert();abstract public void update();protected void getData(final String query) {//get data via database}protected void executeQuery(final String query) {//execute ...

java – 使用静态和非静态方法重载的方法【代码】

据我所知,在Java方法重载中,我们对所有重载方法使用相同的名称.而且,他们的回归类型不是问题.但是,如果我们使用与静态和非静态形式相同的方法会发生什么,如下例所示?我们可以考虑这种方法重载吗?class Adder {static int add(int a, int b) {return a + b;}int add(int a, int b, int c) {return a + b + c;}}class Test {public static void main(String[] args) {Adder a1 = new Adder();System.out.println(Adder.add(11, 11)...

android – 问题:java.lang.NoSuchMethodError:Google Playstore中没有静态方法printStackTrace(Ljava / lang / Thro【代码】

我在我的Playstore中获得预发布报告,如下所示: 错误日志 – java.lang.NoSuchMethodError: No static method printStackTrace(Ljava/lang/Throwable;)V in class Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension; or its super classes (declaration of 'com.google.devtools.build.android.desugar.runtime.ThrowableExtension' appears in /data/app/com.google.android.apps.mtaas.crawler-1/base.apk...

用于实施静态变量或静态方法的Java注释?【代码】

我有兴趣做这样的事情:public interface Foo {public static "abstract" Bar SOME_BAR; // subclasses define one of these}和public interface Foo {public static "abstract" Baz buildABas(...); // subclasses define this method }没有静态,这是OOP 101,但它不能在标准的oop java中完成.我想知道是否有一个注释可以确保这种行为? 编辑: 我有兴趣指定一组选项来定义如何为“可配置”对象设置内容.这可能是命令行标志等.解决...

java – 静态方法无法访问类的实例成员【代码】

在Liang的第9版Java编程简介中,它指出“静态方法不能访问类的实例成员”(第312页).我明白为什么类的实例成员需要访问方法(可能是静态的),但为什么方法需要访问实例成员?对我来说,“访问”意味着“通过点操作符访问”.换一种说法:Class myClass = new Class();myClass.someStaticMethod();有道理,而:someNonStaticMethod.myClass要么someStaticMethod.myClass才不是.是否允许someNonStaticMethod.myClass语法?我不相信我见过这样...

java – 如何在junit @BeforeClass静态方法中访问spring ApplicationContext?【代码】

我试图通过:private static ApplicationContext applicationContext; @Autowiredpublic static void setApplicationContext(ApplicationContext applicationContext) {AuditorTest.applicationContext = applicationContext;}但它并不像所有其他尝试那样有效. 如何自动装配静态ApplicationContext?解决方法:你不能在静态方法上自动装配spring bean.你要把它变成一个实例方法,然后让它将值赋给静态变量(这样可以正常工作):@Autow...

java – 让静态方法返回私有类的设计决策背后是什么?例如Collections.synchronizedList()

我想扩展SynchronizedList类,但发现它是私有的. 为什么这样设计?解决方法:这是因为设计它的人不希望你扩展它. 只有设计人员知道这样做的确切原因,但请考虑Effective Java 2nd Ed Item 17中的建议:Design and document for inheritance or else prohibit it.如果您不必担心有人扩展它,它可以简化类的实现. Effective Java项目提供了您必须设计的各种问题的详细信息,以及缓解这些问题所需的步骤. 有人可能会争辩说,班级设计师没有把...

java – 仅使用静态方法对类进行依赖注入?【代码】

我有一组API类,它们只包含静态方法和一个私有构造函数,因此无法实例化它们.但是,我希望第三方开发人员能够修改API的行为以满足他们的需求. 这是我到目前为止的解决方案(通过静态setter方法的依赖注入).这是开发人员将使用的公共API类.如您所见,它依赖于StaticApiImpl.public class StaticApi {private static StaticApiImpl impl = new StaticApiImpl();private StaticApi() {}public static void setImpl(StaticApiImpl impl) {St...

java – 是静态方法线程安全的类实例【代码】

我有一个像下面这样的静态方法public static void foo(){final ClassA a = new ClassA();} 我在classA中有两个哈希映射. 那些哈希映射线程安全吗?解决方法:目前尚不清楚是否要使用多个线程访问对象a内的哈希映射,或者使用多个线程调用方法foo. 在第一种情况下,集合的线程安全性与外部上下文无关,即它是在静态上下文中创建的.所以不,如果您尝试从具有多个线程的对象a访问哈希映射,则会导致意外行为.您需要使用synchronized块来管理...

如何验证在java中传递给静态方法的参数【代码】

作为我的Junit测试的一部分,我想验证我是否使用正确的参数调用外部类的静态方法. 例如: – 假设我有以下作为测试类.class A {public static void someMethod(String param){some.thirdpartyClass.someStaticMethod(param);} }现在我想测试someMethod测试的一部分,我用参数param调用someStaticMethod 这是最简单的方法吗?我试过通过电源模拟,但找不到方法.解决方法:最简单的方法是使用powermock. 看看这里http://code.googl...

java – 子类中的静态方法,与超类中的签名具有相同的签名【代码】

“你可以在子类中编写一个新的静态方法,该方法与超类中的签名具有相同的签名,从而隐藏它.”这是我从Oracles authorised site for java tutorial读到的句子. 我尝试以这种方式实现上述概念: 家长班:public class E {public void throw1(){System.out.println("E is throwing");} }儿童班:public class D extends E{public static void throw1(){System.out.println("D is throwing");} }但我得到一个错误说“这个静态方法无法隐...

java – 为什么我不能使用实例变量访问接口的静态方法【代码】

为什么我不能使用实例变量访问接口的静态方法.public class TestClass {public static void main(String[] args) {AWD a = new Car();a.isRearWheelDrive(); //doesn't compile} }interface AWD {static boolean isRearWheelDrive() {return false;} }class Car implements AWD { }解决方法:静态接口方法不由子类继承 您无法通过实例访问接口的静态方法.你必须静态访问它们.这与允许通过实例访问静态方法的类略有不同,但通常标记...

Chrome CustomTab错误:java.lang.NoSuchMethodError:没有静态方法startActivity【代码】

我正在尝试使用chrome自定义标签将fitbit与我的应用连接起来.但我得到了以下错误.java.lang.NoSuchMethodError: No static method startActivity(Landroid/app/Activity;Landroid/content/Intent;Landroid/os/Bundle;)V in class Landroid/support/v4/app/ActivityCompat; or its super classes (declaration of ‘android.support.v4.app.ActivityCompat’ appears in /data/data/com.life.myApp.app/files/instant-run/dex/slice...

静态方法 - 相关标签