Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从其他类中的库类直接访问方法?JAVA_Java_Class_Methods - Fatal编程技术网

如何从其他类中的库类直接访问方法?JAVA

如何从其他类中的库类直接访问方法?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的实用程序类。在另一个类中,我如何直接评估来自工具的方法,而不使方法
成为静态的
,并使用
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);
        }
    
    }