English 中文(简体)
在 Java不同班级使用功能,而不将其作为方法收集
原标题:Use Functions in different classes in Java without collecting it in a class as methods

我的一些职能是在一个称为<代码>func的类别中收集的。 我经常在不同级别使用这些方法。 j是否可以在不制造新物体或将其称作新物体的情况下将这些功能称为:func.myFunction(>);?

I want: myFunction();

最佳回答

There are two issues:

  • you can t call non-static methods without having an instance of that class and
  • you can t directly call static methods without mentioning the class name.

The first one is easy to solve: if your method doesn t actually use any non-static members (fields or methods) of the class, then simply adding the static keyword enables you to call it without an instance of the class:

// in YourClass:
public static void yourMethod() {
  //stuff
}

// somewhere else:
YourClass.yourMethod();

And about the second item: I kind-of lied there, you can do that, but you need a static import:

// at the beginning of your .java file
import static yourpackage.YourClass.yourMethod;

// later on in that file:
yourMethod();

Also: there are no functions in Java, only methods.

问题回答

Yes, you can mark the methods as static, and use static imports.

Example:

pkg/UtilFunctions.java

package pkg;

public class UtilFunctions {

    public static int sum(int i1, int i2) {
        return i1 + i2;
    }
}

Test.java

import static pkg.UtilFunctions.*;

class Test {
    public static void main(String[] args) {

        int i = sum(5, 7);     // Calls UtilFunctions.sum(...)

    }
}

Make them static like public static int myFunction(); and then make static import: import static myclass:

Foo.java:
class Foo {
    public static int method() {return 42;}
    ...
}
Bar.java
import static Foo.*;
...
System.out.println(method());

You can use a static import.

For example this:

import java.lang.Math;
...
System.out.println(Math.abs(-1.4));

and this:

import static java.lang.Math;
...
System.out.println(abs(-1.4));

得出同样的结果。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签