gpt4 book ai didi

java - 使用类型变量泛型调用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:15 24 4
gpt4 key购买 nike

我有一个场景,我想创建一个名为 D 的支持类,它包含一个通用方法。我已经为类型变量设置了上限。

class A{
void show(){
System.out.println("Hello A");
}
}

class B extends A{
void msg(){
System.out.println("Hello B");
}
}

class C extends A{
void msg(){
System.out.println("Hello C");
}
}

class D{
<T extends A> void display(T ob){
ob.msg(); //here i want to do some tricks
}
}

首先我想分享我的目标。这里 B 和 C 类的 msg() 函数有不同的实现。我想创建一个名为 D 的支持类,它具有一种显示方法,使用显示方法我想根据实例化调用 B 类或 C 类的 msg() 函数。你能告诉我如何实现吗?

最佳答案

您需要在 A 类中使用 msg() 方法,否则在 D< 类中使用 display() 方法 不知道此方法是否存在于您传递给它的对象中。 (如果有人创建了一个扩展 A 但没有 msg() 方法的类 E,而您传递了一个 E D.display()?)。

如果你不想在 A 类中实现 msg() 方法,那么你可以将它设为抽象(并且你'还必须使类抽象)。

abstract class A {
public abstract void msg();

// ...
}

关于java - 使用类型变量泛型调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com