Java 正在编写文档筛选器-找不到super.insertString
您好,我正在使用jruby编写应用程序,目前在实现Java 正在编写文档筛选器-找不到super.insertString,java,ruby,jruby,documentfilter,Java,Ruby,Jruby,Documentfilter,您好,我正在使用jruby编写应用程序,目前在实现DocumentSizeFilter时遇到问题。目前我正试图解决两个问题。 调用super.insertString(或我之前尝试过的super.repalce)会不断触发JRuby中未找到的方法,但该方法正在被调用。 为什么在插入时调用replace而不是insert? 注:两个文件都是使用 jruby 1.7.1 (1.9.3p327) 2012-12-03 30a153b on OpenJDK 64-Bit Server VM 1.7.0_
DocumentSizeFilter
时遇到问题。目前我正试图解决两个问题。jruby 1.7.1 (1.9.3p327) 2012-12-03 30a153b on OpenJDK 64-Bit Server VM 1.7.0_09-b30 [linux-amd64]
以下是我当前使用的测试文件:
#JavaUtilities\DocumentSizeFilter.rb
module JavaUtilities
class DocumentSizeFilter < DocumentFilter
def initialize max_char
super()
@MAX_CHAR = max_char
end
def insertString(fb, offset, string, attrs)
puts 'doing insert'
super.insertString(fb, offset, string, attrs)
end
def remove(fb, offset, length)
puts 'doing remove'
end
def replace(fb, offset, length, text, attrs)
puts 'doing replace'
super.insertString(fb, offset, text, attrs)
end
end
end
#JavaUtilities\DocumentSizeFilter.rb
模块JavaUtilities
类DocumentSizeFilter
#test.rb
包括Java
java_导入java.awt.event.WindowEvent;
java_导入javax.swing.JButton;
java_导入javax.swing.border.border;
java_导入java.awt.Graphics;
java_导入javax.swing.JFrame
java_导入javax.swing.text.DocumentFilter;
java_导入javax.swing.JTextArea;
需要“JavaUtilities/DocumentSizeFilter”
类JFrame你的困惑在于Ruby中的super
是什么:它不是一个引用,而是一个关键字
您只需调用super
,例如:
def replace(fb, offset, length, text, attrs)
puts 'doing replace'
super
end
super
如果没有参数,则使用当前方法的参数调用超类方法。您可以使用args调用,例如,super foo、bar
,也可以不使用args(明确要求使用paren),例如,super()
def replace(fb, offset, length, text, attrs)
puts 'doing replace'
super
end