Java 解开继承的方法

Java 解开继承的方法,java,class,inherited,Java,Class,Inherited,好吧,这是我第一次实现类,但一切都出了问题。我正在实现一个不同的类,PhraseGenerator,我希望在这里定义的继承方法是getPhrase()。它需要归还阿尔卡。我没有在它里面工作,而是选择了在我的工作之后用括号括起来,现在,不管我把它放在哪里,都会出现不同的错误。在处理这些问题之前,我要确保我把它放在了正确的地方。据我所知,它将在public…FromFile中实现短语生成器。有没有关于它应该去哪里的想法 import java.io.BufferedReader; import ja

好吧,这是我第一次实现类,但一切都出了问题。我正在实现一个不同的类,PhraseGenerator,我希望在这里定义的继承方法是getPhrase()。它需要归还阿尔卡。我没有在它里面工作,而是选择了在我的工作之后用括号括起来,现在,不管我把它放在哪里,都会出现不同的错误。在处理这些问题之前,我要确保我把它放在了正确的地方。据我所知,它将在public…FromFile中实现短语生成器。有没有关于它应该去哪里的想法

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class PhraseGeneratorFromFile implements PhraseGenerator {
    private ParserHelperImpl parserHelper;
    public String getPhrase() {


    public PhraseGeneratorFromFile(String filename) {
        // read file
        StringBuilder fileContent = new StringBuilder();
        BufferedReader br = new BufferedReader(new FileReader(filename));
        try {

            String line = br.readLine();

                while (line != null) {
                fileContent.append(line);
                fileContent.append('\n');
                line = br.readLine();
            }
            String everything = fileContent.toString();
        } finally {
            br.close();
        }


        parserHelper = new ParserHelperImpl();


        List<String> phraseCollection = parserHelper.getPhrases(fileContent,"phrases:");
        String archetype = parserHelper.getRandomElement(phraseCollection);
        boolean flagga = true;
        while(flagga = true){
        Pattern ptrn = Pattern.compile("#[^#]+#");
        Matcher m = ptrn.matcher(archetype);
        String fromMatcher = m.group(0);
        String col = ":";
        String token = fromMatcher+col;
        List<String> pCol = parserHelper.getPhrases(fileContent, token);
        String repl = parserHelper.getRandomElement(pCol);
        String hash = "#";
        String tk2 = hash + token + hash;
        archetype = parserHelper.replace(archetype, tk2, repl);
        flagga = m.find();
        }
        String theArcha = archetype;


            return theArcha;
    }


    }
    }
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.util.List;
导入java.util.StringTokenizer;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类PhraseGeneratorFromFile实现了PhraseGenerator{
专用ParserHelperImpl parserHelper;
公共字符串getPhrase(){
公共短语生成器FromFile(字符串文件名){
//读取文件
StringBuilder fileContent=新的StringBuilder();
BufferedReader br=新的BufferedReader(新文件读取器(文件名));
试一试{
String line=br.readLine();
while(行!=null){
fileContent.append(行);
fileContent.append('\n');
line=br.readLine();
}
String everything=fileContent.toString();
}最后{
br.close();
}
parserHelper=新的ParserHelperImpl();
List phraseCollection=parserHelper.getPhrases(fileContent,“phrases:”);
字符串原型=parserHelper.getRandomElement(短语集合);
布尔flagga=真;
while(flagga=true){
Pattern ptrn=Pattern.compile(“#[^#]+#”);
Matcher m=ptrn.Matcher(原型);
字符串frommacher=m.group(0);
字符串col=“:”;
字符串标记=frommacher+col;
List pCol=parserHelper.getPhrases(fileContent,token);
字符串repl=parserHelper.getRandomElement(pCol);
字符串哈希=“#”;
字符串tk2=哈希+令牌+哈希;
archetype=parserHelper.replace(archetype,tk2,repl);
flagga=m.find();
}
字符串theArcha=原型;
归还阿尔卡;
}
}
}

是的,它在正确的位置,但是您缺少结束符
}
,它应该直接位于
{
之后。您不能将一个方法放在另一个这样的方法中


因为您想返回ARCHA,所以应该将其设置为我们称之为“实例变量”-您可能没有听说过这一点?如果没有,请查找它。

在此处发布问题时的一个好做法是:

(1) .简要说明您希望代码执行的操作

(2) 。如果遇到某些错误,请将其复制到此处,以便了解代码中的错误

我真的不明白你想达到什么目的,但我看到了你的最后一个括号

public String getPhrase()
应该是:

public String getPhrase()
 {
 //logic here
 }

希望这有帮助

您的界面可能是这样的

interface PhraseGenerator {
String getPhrase(); 
}
然后,您编写的实现类将采用以下形式

class PhraseGeneratorImpl implements PhraseGenerator  {

private ParserHelperImpl parserHelper;


@Override //Used for an overridden or implemented method
public String getPhrase() {
//Put all the code you want to implement here..

//If you want to make use of a helper Class the clean way is to use an instance of it(You tried it with Helper)    
//If you want to make use of a utility method within the same class, 
//say reading something from the file system define a private method below this method
String filePhrase = phraseGeneratorFromFile();
//Now use the filePhrase do do other stuff

}

//
private String phraseGeneratorFromFile(){
//Do all the stuff and return phrase/string so declare return type. you havent done it in the code above
}



}

哦,我应该提到:我希望它返回Archa。对不起,今天读了太多问题。我修正了我的答案。我没有在大括号下变红,我认为上面的代码中有七个开放大括号和七个闭合大括号;我只是检查了几次。现在的情况是,我收到一个错误,说PhraseGeneratorFromFile.string无法解析为类型。您指的是尚未发布在此处的代码。我不是读心术的人。抱歉。红线位于PhraseGeneratorFromFile(字符串文件名)下,然后PhraseGeneratorFromFile.String会在eclipse的黄色框中弹出;它实际上从未出现在代码中。