나는이 클래스의보다 특수화 된 버전을 생성하는 UI 및 하위 클래스를 생성하는 일반 클래스를 사용합니다. 그 슈퍼 클래스는 일반적으로 여러 위치에서 호출되기 때문에 기본적으로 수퍼 클래스가 호출을 처리하거나 자식 클래스에 전달해야하는 수퍼 클래스 날씨를 결정해야합니다.생성자가 다른 클래스에 호출을 전달합니다.
public class AddEntryWindow<T extends SomeUiClass>
{
public AddEntryWindow(TableDefinition tableDefinition, RefreshListener refreshListener)
{
// regular init stuff
if(T == PartUiClass) // I know this doesn't work like this
{
return new AddPartWindow(tableDefinition, refreshListener);
// I know this doesn't work either.
}
}
}
public class AddPartWindow extends AddEntryWindow<PartUiClass>
{
public AddPartWindow(TableDefinition tableDefinition, RefreshListener refreshListener)
{
// (usually super would have to be called here)
//special init stuff
}
}
호출은 다음과 같습니다
new OpenBlockingWindowHandler(scene, new AddEntryWindow<T>(TableDefinitionGenerator.getTableDefinitionByClass(elementToSelect), this)));
자바에서 어떻게 든 가능 이러한 구조인가? 생성자가 다른 클래스 인스턴스를 "반환"하도록 할 수 있습니까?