基本上,我需要一个“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 编写这个应用程序,所以我有点迷失在不同的语法中。
抽象类如何使用它的一个例子是: public class something_abstract(){ private Type someKindOfVariable; IOS myIO = new IOS("istream" 类型对象, "ostream" 类型对象); public void display(){ myIO.println(someKindOfVariable);//所以这会将这个打印到指定的ostream类型对象...这是我不明白的部分:这个ostream对象是什么类型,我如何通过这变成了一个用户制作的类,旨在处理任何类型的 ostream 和任何类型的对象}
谢谢!