如何从其他类中的库类直接访问方法?JAVA
我有一个名为Tools的实用程序类。在另一个类中,我如何直接评估来自工具的方法,而不使方法如何从其他类中的库类直接访问方法?JAVA,java,class,methods,Java,Class,Methods,我有一个名为Tools的实用程序类。在另一个类中,我如何直接评估来自工具的方法,而不使方法成为静态的,并使用Tools.methodName()前缀 相反,我希望能够编写methodName()并进行此项工作。我知道你可以用 import packagename.Tools 但是我的IDE仍然希望我将方法更改为static。例如: 实用程序类别: package jsmash; public class Tools { public boolean expect(char c, in
成为静态的
,并使用Tools.methodName()代码>前缀
相反,我希望能够编写methodName()代码>并进行此项工作。我知道你可以用
import packagename.Tools
但是我的IDE仍然希望我将方法更改为static
。例如:
实用程序类别:
package jsmash;
public class Tools {
public boolean expect(char c, int i) {
return Filler.fileContents[i] == c;
}
}
我希望能够做到的:*
package jsmash
import jsmash.Tools;
public class Test {
void use() {
expect('c', 32); // directly call the expect method without *Tools.* prefix
}
}
使方法静态
静态导入该方法
像这样:
public class Tools {
public static boolean expect(char c, int i) { //dont worry about what this method is actually doing
if(Filler.fileContents[i] == c) return true;
else return true;
}
}
然后使用:
import static jsmash.Tools.expect;
public class Test {
void use() {
expect('c', 32);
}
}
您还可以简单地:
import static jsmash.Tools.*;
批量导入所有静态方法(和字段)。首先,您不必添加导入jsmash.Tools代码>因为工具和测试类在同一个包中。但是,如果工具和测试(testis-a工具)之间存在连接,您可以通过简单地扩展测试类(继承)来实现这一点
是的,我知道,我即将被标记为复制品。这也有帮助。我自己找不到,所以我很擅长。方法必须是静态的,然后你可以使用静态导入。@pvg好的,给我一分钟,我在谷歌上搜索。使用继承?例如:公共类测试扩展工具{//stuff}
?@pvg您能为我的情况提供一个使用静态导入的示例吗?谢谢非常感谢。完美的还有@pvg你也在说同样的话。嗯。。。没有使方法静态?@ElliottFrisch是的,对不起我的错。我之所以这么说,是因为我认为静态操作的唯一方法是在需要引用时添加前缀。我不知道静态导入允许我这么做。@ElliottFrisch基本上,这是我对Java语言缺乏了解。请阅读正文中的注释。见@Riley Carney的评论。
package jsmash
public class Test extends Tools{
void use() {
expect('c', 32);
}
}