java中C#方法的等价物

java中C#方法的等价物,c#,java,generics,C#,Java,Generics,我不熟悉编程,并且尝试将一些c代码翻译成java。我正试图找出下面的方法到底做了什么。如何用java编写相同的代码 这是C中抽象类的一部分# // //总结: //获取包装此文档的所需类型的页面对象。 // //类型参数: //第页: //WatiN.Core.Document.Page()子类 // //返回: //页面对象 公共虚拟TPage(),其中TPage:Page,new(); TPage Page(); 默认情况下,java中的所有方法都是虚拟的,所以这一部分很好; public

我不熟悉编程,并且尝试将一些c代码翻译成java。我正试图找出下面的方法到底做了什么。如何用java编写相同的代码

这是C中抽象类的一部分#

//
//总结:
//获取包装此文档的所需类型的页面对象。
//
//类型参数:
//第页:
//WatiN.Core.Document.Page()子类
//
//返回:
//页面对象
公共虚拟TPage(),其中TPage:Page,new();
TPage Page();
默认情况下,java中的所有方法都是虚拟的,所以这一部分很好;
public abstract <TPage extends Page> TPage Page();
默认情况下,java中的所有方法都是虚拟的,所以这一部分很好;
public abstract <TPage extends Page> TPage Page();
但是在C#中没有Java等价于“new()”约束;
但是没有Java可以与C#中的“new()”约束相媲美。

根据您提供的文档,这将是最好的解决方案,因为您可能需要类型信息来查找正确的页面

public <T extends Page> T getPage(Class<T> pageClass)

这种设计是由于Java实现了基于类型擦除的泛型,因此您需要传入所需的类型作为参数来绕过它。

根据您提供的文档,这将是最好的解决方案,因为您可能需要类型信息来查找正确的页面

public <T extends Page> T getPage(Class<T> pageClass)

这种设计是由于Java实现了基于类型擦除的泛型,因此您需要传入所需的类型作为参数来绕过它。

但这不会创建方法吗?或者这与C#代码无关?但是您定义的签名不是有效的方法签名,而是一个实例变量……只是好奇而已;)@哎呀,这些改变有用吗?确保TPage定义了一个使用0个参数的构造函数仍然是一个问题,但我不知道这是否可行。我认为类似于
public的东西TPage@MadProgrammer这意味着您可以在同一个对象上调用object1.getPage()和object.getPage()。它可以用于根据类型过滤私有列表,因为在C#中,如果不进行类型擦除,则类型可以执行此类操作。我绝不是一个java开发人员,所以我只是脱离了旧知识和一些有根据的猜测?或者这与C#代码无关?但是您定义的签名不是有效的方法签名,而是一个实例变量……只是好奇而已;)@哎呀,这些改变有用吗?确保TPage定义了一个使用0个参数的构造函数仍然是一个问题,但我不知道这是否可行。我认为类似于
public的东西TPage@MadProgrammer这意味着您可以在同一个对象上调用object1.getPage()和object.getPage()。它可以用于根据类型过滤私有列表,因为在C#中,如果不进行类型擦除,则类型可以执行此类操作。我绝不是一个java开发人员,所以我只是脱离了旧知识和一些有根据的猜测。期待java具有类似C的功能就像期待我13岁时玩魔兽争霸1的133MHz 586机器有12MB内存来运行Windows 8一样。这不是C代码——用“抽象”替换“虚拟”,你就有了C代码(假设它在抽象类中)@DaveDoknjas它可能是从引用程序集中的metghod上按F12的结果复制而来的。期望java具有类似C的功能就像期望我13岁时玩魔兽争霸1的133MHz 586机器有12MB内存来运行Windows 8。这不是C代码-用“抽象”替换“虚拟”你有C#代码(假设它在一个抽象类中)。@DaveDoknjas它可能是从在引用程序集中的metghod上按
F12
的结果复制而来的。+1这是唯一一个提供实例化
T
的方法的答案,因此它是从
new()获得的最接近的结果
使用Java泛型。+1这是提供实例化
T
方法的唯一答案,因此使用Java泛型可以从
new()
获得最接近的答案。
MyPage page = myClass.Page(MyPage.class);