gpt4 book ai didi

java - 我可以从java中的类实例中删除方法吗?

转载 作者:行者123 更新时间:2023-12-01 21:17:13 29 4
gpt4 key购买 nike

假设我有一个名为“Foo”的类,其中包含一些方法:

 public class Foo{
public void a(){
//stuff
}

public void b(){
//stuff
}
}

我有一个 Foo 的实例:Foo instanceOfFoo = new Foo();

我可以从“instanceOfFoo”中删除方法“a”吗?

最佳答案

您无法删除方法,除非更改字节代码并破坏代码的“契约”,但您可以扩展该类并让子类的方法重写抛出 UnsupportedOperationException如果被叫的话。此外,子类应该弃用该方法,并在其 javadoc 中解释其背后的基本原理,以及在其位置使用什么。

这会改变类的契约,但是以一种更负责任的方式,然后说摆弄字节代码。

例如:

public class Foo {
public void a() {
// stuff
}

public void b() {
// stuff
}
}

public class FooChild extends Foo {
/**
* @deprecated: This method should no longer be used and will throw an exception
*/
@Override
@Deprecated
public void a() {
String text = "The method a is no longer supported";
throw new UnsupportedOperationException(text);
}
}

关于java - 我可以从java中的类实例中删除方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818913/

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