相关疑难解决方法(0)

Java Enum定义

我以为我很了解Java泛型,但后来我在java.lang.Enum中遇到了以下内容:

class Enum<E extends Enum<E>>
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何解释这个类型参数?用于提供可以使用类似类型参数的其他示例的加分点.

java generics enums crtp

146
推荐指数
3
解决办法
2万
查看次数

键入安全通用Java观察器编译时错误

要求

我正在尝试写一对Observer/ Observable类.我想参数化,Observer以便可以进行类型安全更新调用.想象一下这个版本:

class View implements Observer<Model> {
    @Override
    public void update(Model model) { render(model); }  // no casting:)
}
Run Code Online (Sandbox Code Playgroud)

而不是需要强制转换的版本:

class View implements Observer {
    @Override
    public void update(Object model) { render((Model) model); }  // casting:(
}
Run Code Online (Sandbox Code Playgroud)

尝试

这是我到目前为止所拥有的.我的Observer界面:

public interface Observer<T extends Observable> {
    public void update(T observable);
}
Run Code Online (Sandbox Code Playgroud)

和我的Observable抽象类:

import java.util.List;

public abstract class Observable {
    private List<Observer<? extends Observable>> observers;

    public Observable() {
        System.out.println(this.getClass());
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

java generics design-patterns type-safety observer-pattern

6
推荐指数
2
解决办法
3723
查看次数