gpt4 book ai didi

java - 具有不同签名java的实现

转载 作者:搜寻专家 更新时间:2023-11-01 02:27:23 25 4
gpt4 key购买 nike

当我开发一个类架构来满足我的需要时,我遇到了这种情况。我有一个抽象类,其中有一些必须由子类实现的方法,但在子类中我发现我需要使用从第一个继承的签名来实现。

向您展示我的意思:

// person class
public abstract class Person
{
protected void abstract workWith(Object o) throws Exception;
}

//developer class
public class Developer extends Person
{// i want to implement this method with Computer parametre instead of Object and throws `//DeveloperException instead of Exception`
protected void workWith(Computer o) throws DeveloperException
{
//some code here lol install linux ide server and stuff
}
}

// exception class
public class DeveloperException extends Exception
{

}

有什么办法吗?我不知道通用是否可行。太感谢了。

最佳答案

你绝对可以为此使用泛型:

public abstract class Person<T, U extends Exception> { 
protected abstract void workWith(T t) throws U;
}

class Developer extends Person<Computer, DeveloperException> {
protected void workWith(Computer c) throws DeveloperException {
//implementation code
}
}

这可以实现您想要的,但我们需要更多关于您的用例的详细信息来确定这是否是适合使用的设计。

关于java - 具有不同签名java的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618247/

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