metoduna ekle Groovy'de sadece metaclass programlama ile oynuyorum. Ama birden sadece çalışıyorum alınamadı küçük bir sorun ... İşte Metodu
basit script bakıyordu:// define simple closure
def printValueClosure = {
println "The value is: '$delegate'"
}
String.metaClass.printValueClosure = printValueClosure
// works fine
'variable A'.printValueClosure()
// define as method
def printValueMethod(String s){
println "The value is: '$s'"
}
// how to do this!?
String.metaClass.printValueMethod = this.&printValueMethod(delegate)
'variable B'.printValueMethod()
o yöntemi kullanmak mümkün mü ama arama ilk parametreyi ayarlayın nesne? temsilci kullanmak işe yaramıyor gibi görünüyor ... Arayanı başvurmayan yöntemleri atama sorun yok. Körüm burada mı çalışıyor?
def printValueMethod(String s){
println "The value is: '$s'"
}
String.metaClass.printValueMethod = { -> printValueMethod(delegate) }
assert 'variable B'.printValueMethod() == "The value is: 'variable B'"
idomatic yolu olacaktır kapanışları kullanmadan bir yöntem eklemek için:
sayesinde Ingo
Güzel. Teşekkürler. Bunu hiç düşünmemiştim ... Ayrıca bir sınıfa çok fazla statik yardımcı metodu eklemek için uygun bir yol var mı (kategoriye göre değil). Örneğin Apache Commons IO File File sınıfına dosya mı? – Ingo
ah ... düzenlemeniz ayrıca ek sorumu yanıtlıyor. Tekrar teşekkürler. – Ingo