基本的に、「myIO」クラスが必要です。これには、プログラマーが最初に入力タイプと出力タイプを指定する必要があります。Javaでこれを行う方法はわかりませんが、cppでは、作成した各クラス内に「toString」または「display」関数を定義して、クラスオブジェクトをコンソールに表示したり書き込みたりできるものに変換します。ファイル。次に、cout演算子 "<<"をオーバーロードし、それを任意のostream型変数で使用します。Javaで同等のistream型とostream型変数が何であるかは基本的にわかりません。だからここに私が本質的に必要なものがあります:
public class IOS<Tin, Tout>{
private "istream" _inputSource;
private "ostream" _outputSource;
public IOS(Tin in, Tin out){
_inputSource = new "istream"( (typecast if necessary) in );
_outputSource = new "ostream"( (typecast if necessary) out);
}
public String read(){
//code which reads in data somehow, in c++ I could use stringstreams or something similar
}
public void print(ObjectType Object){
//code to somehow write any object to a file
}
}
上記のコードブロックでは、TinとToutが入力変数のタイプです。これの形式は重要ではありません、私はこれらがどのタイプである必要があるかを知らないだけです。「istream」と「ostream」はC++の関数の型変数であり、ここでそれらがどうあるべきかわかりません。基本的に、このクラスは、あらゆるタイプのオブジェクトをあらゆるタイプのファイルソースに読み書きできるようにする必要があります。これが不可能な場合は、少なくとも後者を実行する必要があり、タイプごとにオーバーロードすることができます。
これを行う方法について何か良いリソースや考えがあれば、私に知らせてください。私は主にC/C ++コーダーであり、このアプリケーションをJavaで作成することを余儀なくされているため、別の構文で迷子になっています。
抽象クラスでの使用例は次のとおりです。publicclasssomething_abstract(){private Type someKindOfVariable; IOS myIO = new IOS( "istream"タイプのオブジェクト、 "ostream"タイプのオブジェクト); public void display(){myIO.println(someKindOfVariable); //したがって、これは指定されたostreamタイプのオブジェクトに出力されます...これは私が理解していない部分です:このostreamオブジェクトはどのタイプで、どのように渡すのですか?これは、あらゆるタイプのostreamとあらゆるタイプのオブジェクトを処理するように設計されたユーザー作成のクラスになります}
ありがとう!