sách gpt4 ai đã đi

Các vấn đề về cú pháp Java generics/abstract/inner class

In lại 作者:行者123 更新时间:2023-12-02 08:35:58 28 4
mua khóa gpt4 Nike

我有以下内容:

public abstract class Foo{
//contents of Foo //
...
public class Bar extends Foo{
//contents of Foo.Bar //
...
}
}

后来,在另一个类和java文件中,我尝试使用外部抽象类作为父类(super class)型来构造上面内部Bar类的实例。更复杂的是,新类有它自己的泛型。以下不起作用:

public class SomeOtherClass{
private Foo
x;

public SomeOtherClass(){
x = Foo
.Bar();
}
}

但这不起作用;我尝试过的所有其他组合也没有。那么我该如何实例化x?可以在不删除 Foo 参数的情况下完成吗?我不想删除 Foo 的参数,因为它是抽象方法,其签名中具有通用参数。

1 Câu trả lời

要获取内部类的实例,您首先需要外部类的实例。由于示例中的 Foo 是抽象的,因此您无法实例化外部类。因此您也无法实例化内部类。

对于您的示例,您可以使用肮脏的技巧(因为没有要实现的抽象方法)

public class SomeOtherClass{
private Foo
x;
public SomeOtherClass() {
//create anonymous extension of the abstract outer class
//for a real abstract class this would mean you have to
//implement all methods which are declared abstract
x = new Foo
(){};
x = x.new Bar
();
}
}

所以实际上你应该问自己你的类结构是否正确,是否需要访问抽象类(Foo)的内部类(Bar)而不真正需要封闭类。

关于Java泛型/抽象/内部类语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773667/

28 4 0
Bài viết được đề xuất: scheme - 根据 reduce 定义 map
Bài viết được đề xuất: arrays - 无法让 Powershell 提取 $StrComputer.name
Bài viết được đề xuất: java - 字谜哈希函数
Bài viết được đề xuất: JNLP 中的 Javax.mail
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com