7

我最近从 PHP 工作切换到 Java 并有一个查询。想强调一下我是Java的初学者。

本质上,我在文件 A(使用 A 类)中工作,并希望引用保存在文件 B(B 类)中的静态方法。在使用 A 类时,我是否需要参考文件 B?(我正在考虑 PHP 中的 require_once )我在 A 类中的代码如下:

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

Eclipse 没有将 B 识别为一个类。我是否需要创建 B 的实例才能访问静态方法。感觉就像我真的忽略了一些东西,并会感谢任何输入。

4

3 回答 3

15

确保您可以正确访问 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();
}
于 2013-09-16T17:38:52.073 回答
2

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

package foo;

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

Public class A{
  String[] lists = B.staticMethod();
}
于 2013-09-16T17:39:21.720 回答
1

Java 具有类似于 PHP 的自动加载器的类加载器机制。这意味着您不需要像includerequire函数这样的东西:只要您使用的类在“类路径”上,它们就会被找到。

有人会说你必须使用import语句。这不是真的; 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());
于 2013-09-16T17:46:50.390 回答