构造函数实际上可以返回字符串吗?

elw*_*ynn 4 java string constructor return

我在一个同名的.java文件中有一个名为ArionFileExtractor的类.

public class ArionFileExtractor {

public String ArionFileExtractor (String fName, String startText, String endText) {
    String afExtract = "";
    // Extract string from fName into afExtract in code I won't show here
    return afExtract;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在另一个.java文件中调用ArionFileExtractor时,如下所示:

String afe = ArionFileExtractor("gibberish.txt", "foo", "/foo");
Run Code Online (Sandbox Code Playgroud)

NetBeans通知我存在不兼容的类型,并且需要java.lang.String.但我编写了ArionFileExtractor来返回标准字符串类型,即java.lang.string.

我想知道,我的ArionFileExtractor构造函数能合法地返回一个字符串吗?

我非常感谢有关我在这里做错的任何提示或指示.

pav*_*ave 15

构造函数创建对象,它们不返回数据.

  • 我同意pave.简单就是好.elwynn需要快速而简单的*"这就是为什么"*,而不是深入的学术讨论. (2认同)

Stu*_*son 9

您的方法ArionFileExtractor()不是构造函数.使用者没有返回类型,如下所示:

public  ArionFileExtractor (String fName, String startText, String endText) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

注意缺少返回类型.


but*_*ken 5

构造函数只能返回它构造的对象的实例 - 否则你没有引用它来挂在你刚刚创建的对象上!如果要进行"实用程序"调用,请考虑使用静态方法:

public class ArionFileExtractor {
    public static String getFileContents(String fName, String startText, String endText) {
        String afExtract = "";
        // Extract string from fName into afExtract in code I won't show here
        return afExtract;
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个可以调用

ArionFileExtractor.getFileContents(...)
Run Code Online (Sandbox Code Playgroud)