は相当のスーパーのため替メソッドの呼び出しに内部の分野のラッパークラス
質問
ましょうと言いたいクラスを作成する MyString
するラッパー java.lang.String
.いと呼ぶ新たな方法 reverse
.
public class MyString {
private String text=null;
public MyString(String foo){
text=foo;
}
public String reverse(){
// implementation omitted
return reversedString;
}
}
現在 String
が優先するものとします。そのためできないので延長します。片て MyString
すべての方法 String
支援が提供するラッパー法の実装方法など toCharArray()
:
public char[] toCharArray(){
// redirect to String member field 'text'
return text.toCharArray();
}
があるので、できるリダイレクトメソッドの呼び出しのメンバフィールドなしで実際にコードのラッパーの実装?似たようなスーパー?
解決
いいえ、での受け付けはできません。
定義ができるインターフェースを含むすべてのjava.lang.文字列の方法(プラスお手法)を実施すると 動的プロキシ 替文字列に実施すべての負の影響の 動的プロキシ).
あまりのと タイプ変換 new MyString(string).reverse()
残念なことにJavaない C#'s延長方法 または Scalaの黙示的に型変換.
もちろんあたっぷり 逆実装, 例から apache commons図書館.で実施手続きのスタイル:
String reversed = StringUtils.reverse(string);
(きたいという逆方法を返しますMyStringない文字列で書くことができ: s.reverse().reverse()
).
他のヒント
さらにいかに質問に答えているかどうかわかものの、最終的には、いくつか表示してください MyString
全てのものと同じ方法として String
, でも、その一部レベルのクラスもすべて同じ方法で定義されています。したりすることはできませんの中心です。
できるのではないでしょうかく綺麗なのでその方法んタイプ return text.blah()
, もより優雅によること。だと思いますか何かできる必要性を回避するためのメソッドの定義お MyString
ます。
できないことが好きになっています。でも、たとえば、利用できるボタンひ'を作成"の代表団は..."機能できないものはなく、すべての委譲方法一部のマウスをクリック操作。