我有一个班级,我制作了多个方法,但我想将其中一些放在另一个班级,因为他们做了其他的事情。我怎样才能让我的第一堂课仍然使用我的方法?
Class A
有15个private static methods
(它们是静态的,因为它们只返回值,我不需要定义对象)
我在同一个软件包中创建了Class B
,当其中移动了5个方法时,main function from A
在使用时不会检测到它们。
答案 0 :(得分:2)
你的问题是能见度。 private
表示只有包装类才能看到这些方法。
将可见性设置为默认值(如果两个类都在同一个包中)或public
如果它们位于不同的包中。
例如,A类和B类在同一个包中:
// A.java
public class A {
static void oneMethod();
}
// B.java
public class B {
private static void anotherMethod() {
A.oneMethod();
}
}
或在不同的包裹中:
// A.java
public class A {
public static void oneMethod();
}
// B.java
public class B {
private static void anotherMethod() {
A.oneMethod();
}
}
答案 1 :(得分:0)
那是因为您已将方法定义为private
。您应该将它们定义为package protected
(删除“私有”部分)或public
(将public替换为public)。
话虽如此:拥有一个包含15个私有静态方法的类是如此罕见,我会在其中添加标签'bad practice'。你能分享你的代码吗?这些方法做得更清楚了吗?除非你正在创建一个实用程序类,比如说StringUtils,我很确定你根本不需要任何静态方法。