JRuby+swingでJavaクラスの冗長な呼び出しをeach文で記述する方法
たとえば、JRubyにてswingのJFrame, JButton, JLabelを使うとき
JFrame = javax.swing.JFrame JButton = javax.swing.JButton JLabel = javax.swing.JLabel
と書くが、これは冗長な記述でもう少し工夫したいと思い、いろいろ調べた所eachでできることがわかりました。
サンプルを以下に記載します。
require 'java' (<<_SWING_).split.each { |c| eval "#{c} = javax.swing.#{c}" } JFrame JButton JLabel _SWING_
require 'java' %w(JFrame JButton JLabel).each {|c| eval "#{c} = javax.swing.#{c}"}
ちょっとだけ楽できました。