-methodsしか持たProperty
ないというクラスがあります。の新しいインスタンスが作成さget
れると、すべてのフィールドが設定されます。と呼ばれるインターフェースを実装します。Property
Property
IProperty
使用しているライブラリにバグがあるため、Property
作成後にインスタンスの名前を新たに設定する必要があります。WrapperProperty
したがって、パブリックメソッドを提供するクラスを作成することをお勧めします。このクラスsetName
自体は、保護/パッケージビューで作成されたsetName()
メソッドを呼び出します。Property
問題は、このメソッドをで保護できないことです。これはProperty
、Eclipseがこのメソッドをインターフェイスに追加して、IProperty
パブリックにするように指示しているためです。
回避策はありますか?
WrapperIProperty:
public class WrapperIProperty {
private IProperty prop;
WrapperIProperty(Property prop) {
this.prop = prop;
}
public void setName(String name) {
prop.setName(name);
}
}
財産:
public class Property implements IProperty {
String name;
protected void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getFoobar() {
return 123;
}
public int getWhatever() {
return 987;
}
}
IProperty:
public interface IProperty {
public int getWhatever();
public int getFoobar();
public String getName();
}
これが現在の様子です。Property
クラスでメソッドを保護することができないため、明らかに機能しません。したがって、どうにかしてinterfaceeエントリを削除するのが最善です。しかし、どのように?