java中的泛型和方法

java中的泛型和方法,java,generics,Java,Generics,我有一个问题要用java解决。 有一种方法,它以一个对象作为参数。在这个方法中,有一个if语句。但是我不能使用if语句。我们必须在该类中使用T泛型,所以我想比较两个相同类型的对象,但另一方面,他不想得到getAge()方法。 也许你们有一些想法?这里有一些代码 public boolean isOlder(T other) { if(this.getAge() > other.getAge()){ return true; }else

我有一个问题要用java解决。 有一种方法,它以一个对象作为参数。在这个方法中,有一个if语句。但是我不能使用if语句。我们必须在该类中使用T泛型,所以我想比较两个相同类型的对象,但另一方面,他不想得到getAge()方法。 也许你们有一些想法?这里有一些代码

public boolean isOlder(T other) {
        if(this.getAge() > other.getAge()){
            return true;
        }else{
            return false;
        }
} 

除非另有明确说明,否则泛型类型应该是
对象
的子对象,该对象没有
getAge()
方法

您可能想做的是:


//只要我们有地方
公共类基类{
...
public int getAge()。。。。
...
}
//您可以这样编写方法:
公共布尔isOlder(T其他){
if(this.getAge()>other.getAge()){
返回true;
}否则{
返回false;
}
} 
//您还可以简化方法:
公共布尔isOlder(T其他){
返回此.getAge()>other.getAge();
} 
//这也可能适用于您(根本没有泛型)
公共布尔isOlder(基类其他){
返回此.getAge()>other.getAge();
} 
更多信息:

(如何)类型T的对象保证提供getAge方法?在这里使用泛型类型可能没有意义。请添加一些上下文,以了解什么是类定义以及调用方法的确切内容。我怀疑需要像
T extensed someObject
这样的内容,其中
someObject
具有
getAge()
method@jr593更像是
T扩展了SomeClass
:)@floxbr是的,也许这没有意义,但我们的教授希望我们这样做,所以。。。我必须这么做。谢谢大家。这对我帮助很大。我不知道,我可以扩展到被覆盖的类。你确定当你声明它为
class other
时,
other.getAge()
会编译吗;否则返回false可以简化为
返回条件
@Pshemo-是的,只使用
T other
会更安全,我已经更新了评论。与isOlder(基类other)相比有什么优势?T没有在任何地方使用…@floxbr我看不出这段代码有什么好处。不过,作者明确询问了泛型,所以我认为从更大的角度来看,泛型会有优势。我添加了一个选项
isOlder(BaseClass-other)
,以获得更好的图片。