Java 向类输入参数有意义吗?

Java 向类输入参数有意义吗?,java,Java,我创建了一个DocumentFilter类型的类,如下所示: public class CustomDocumentFilter extends DocumentFilter { private StyledDocument styledDocument; private JTextPane panetxt; public CustomDocumentFilter(JTextPane panetxt) { this

我创建了一个DocumentFilter类型的类,如下所示:

public class CustomDocumentFilter extends DocumentFilter
    {
        private StyledDocument styledDocument;
        private JTextPane panetxt;

        public CustomDocumentFilter(JTextPane panetxt) {
            this.panetxt = panetxt; // Not really necessary
            this.styledDocument = panetxt.getStyledDocument();
        } 

        private final StyleContext styleContext = StyleContext.getDefaultStyleContext();

        Pattern pattern = buildPattern(mystring);



        private Pattern buildPattern(String mystring)
        {
        StringBuilder sb = new StringBuilder();
        String[] toke = StringUtils.split(mystring,",");

        for (String token : toke) {
            sb.append("\\b"); 
            sb.append(token);
        }
        if (sb.length() > 0) {
            sb.deleteCharAt(sb.length() - 1); 
        }

        Pattern p = Pattern.compile(sb.toString());

        return p;
        }
我的问题是:如何在CustomDocumentFilter调用中包含
mystring

//String mystring="lalala";
((AbstractDocument) editeur.getDocument()).setDocumentFilter(new CustomDocumentFilter(editeur));
编辑:

关于Jonathan建议的第一种方式,我得到:

error: cannot find symbol Pattern pattern = buildPattern(mystring); ^ symbol: variable mystring location: class TextEditor.CustomDocumentFilter 

我不知道这是否与Pattern子句有关,也不100%确定描述中需要什么。但我认为您只是想问如何将本地字符串值放入新的CustomDocumentFilter对象中

这很简单,你有选择!比我在这里展示的两个还要多。 第一个简单的方法是将其添加到构造函数中

public CustomDocumentFilter(JTextPane panetxt, String myString) {
  ...
  pattern = buildPattern(mystring);
}

((AbstractDocument) editeur.getDocument()).setDocumentFilter(new CustomDocumentFilter(editeur, myString));
另一种方法是使用返回对象的方法

public CustomDocumentFilter myFunction(String myString) {
  pattern = buildPattern(mystring);
  return this;
}

((AbstractDocument) editeur.getDocument()).setDocumentFilter(new CustomDocumentFilter(editeur).myFunction(myString));

您可以向构造函数中再添加一个参数。。只要您以最有效的方式获得所需的结果,向构造函数添加参数就没有问题。如果您不使用
JTextPane
来获取
StyledDocument
之外的任何东西,为什么不接受
StyledDocument
作为参数?什么是
mystring
?它来自哪里?它包含什么?问题是我需要一个buildPattern()的输入参数;我不知道如何通过考试。如何将其添加到构造函数中?关于第一种方法,我得到如下结果:错误:找不到symbol Pattern=buildPattern(mystring);^symbol:variable mystring location:class TextEditor.CustomDocumentFilter我不知道这是否与模式子句有关如果您可以添加更多的代码,我就可以确定问题出在哪里。我的示例假设您将模式作为类的字段,就像您使用styledDocument和panetxt一样