从另一个java类调用静态方法

时间:2013-09-16 17:36:49

标签: java

我最近从使用PHP转向Java并进行了查询。想要强调我是Java的初学者。

基本上我正在使用文件A(使用类A)并且想要引用保存在文件B(类B)中的静态方法。在使用A类时,是否需要对文件B进行任何引用? (我正在思考PHP中的require_once)我在A类中的代码如下:

Public class A{
String[] lists = B.staticMethod();
}

Eclipse没有将B识别为类。我是否需要创建B的实例才能访问静态方法。感觉我真的忽略了什么,并会感激任何意见。

3 个答案:

答案 0 :(得分:13)

确保您有权访问B.staticMethod。也许将其声明为

public static String[] staticMethod() {
    //code
}

此外,您还需要导入B类

import foo.bar.B; // use fully qualified path foo.bar.B

public class A {
    String[] lists = B.staticMethod();
}

答案 1 :(得分:1)

您不需要创建类的实例来调用静态方法,但您需要导入该类。

package foo;

//assuming B is in same package
import foo.B;

Public class A{
  String[] lists = B.staticMethod();
}

答案 2 :(得分:1)

Java具有类似于PHP的自动加载器的类加载器机制。这意味着您不需要includerequire函数之类的任何内容:只要您使用的类位于“类路径”上,就可以找到它们。

有些人会说你必须使用import statement。这不是真的; import除了给你一个用短名称引用类的方法之外别无他法,所以你不必每次都重复包名。

例如,与ArrayListDate类一起使用的程序中的代码可以这样写:

java.util.ArrayList<java.util.Date> list = new java.util.ArrayList<>();
list.add(new java.util.Date());

一段时间后重复包名称会很累,所以我们可以使用import告诉编译器我们想通过它们的短名称来引用这些类:

import java.util.*;
....
ArrayList<Date> list = new ArrayList<>();
list.add(new Date());