相关疑难解决方法(0)

什么是原始类型,为什么我们不应该使用它?

问题:

  • 什么是Java中的原始类型,为什么我经常听说不应该在新代码中使用它们?
  • 如果我们不能使用原始类型,它有什么替代方案,它是如何更好的?

java generics raw-types

617
推荐指数
13
解决办法
20万
查看次数

具有未知实现类的通用工厂

我们假设有两个接口:

public interface FruitHandler<T extends Fruit>
{
    setFruit(T fruit);
    T getFruit();
}

public interface Fruit
{
}
Run Code Online (Sandbox Code Playgroud)

现在我想要一个工厂来创建FruitHandlers(例如AppleHander,OrangeHandler...),但是FruitHandlerFactory不知道两个接口的实现类的必要性(比如在java参数化的通用静态工厂中).本FruitHandlerFactory应以这种方式工作(其中OrangeHandler农具FruitHandlerOrange工具Fruit):

FruitHandlerFactory fhf = new FruitHandlerFactory<OrangeHandler,Orange>();
OrangeHandler fh = fhf.create();
Orange orange = (Orange)fh.getFruit();
Run Code Online (Sandbox Code Playgroud)

这应该是工厂:

public class FruitHandlerFactory<A extends FruitHandler, B extends Fruit>
{
    public FruitHandler create()
    {
        FruitHandler<Fruit> fh = new A<B>();   //<--- ERROR
        fh.setFruit(new B());
        return fh;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误的地方:

The …
Run Code Online (Sandbox Code Playgroud)

java generics

35
推荐指数
1
解决办法
2万
查看次数

标签 统计

generics ×2

java ×2

raw-types ×1