2011-02-16 28 views
1

我有,我想在像這樣定義JRuby中繼承Java字段:JRuby的field_accessor最後一個成員

public abstract class FilterObjectStream<S, T> implements ObjectStream<T> { 
    protected final ObjectStream<S> samples; 

那麼我想繼承這個類和訪問這個成員,我曾經試圖訪問受保護的最終像這樣的成員之一,採用field_accessor:

class NameSampleDataStream 
    field_accessor :samples 
end 

class HtmlNameSampleDataStream < NameSampleDataStream 
    def read 
    token = self.samples.read() 
    token 
    end 
end 

我收到一條錯誤消息:

SecurityError: Cannot change final field 'samples'

我猜這個例外可以回答這個問題,但無論如何,我可以訪問這個變量或者是遊戲嗎?

不幸的是我無法更改java源代碼。

回答

2

你可以試試做「field_reader」嗎?可以設置最終的字段,但我們不會爲你做這件事,你想在這裏只是一個讀者,對吧?

相關問題