小编Bee*_* Me的帖子

使用泛型类型的Java构造函数

我很难绕过Java泛型类型.这是一段简单的代码,在我看来应该可行,但我显然做错了.

Eclipse在BreweryList.java中报告此错误:

The method breweryMethod() is undefined for the type <T>
Run Code Online (Sandbox Code Playgroud)

我们的想法是使用作为Brewery类的子类的对象实例填充Vector,因此调用将类似于:

BreweryList breweryList = new BreweryList(BrewerySubClass.class, list);
Run Code Online (Sandbox Code Playgroud)

BreweryList.java

package com.beerme.test;

import java.util.Vector;

public class BreweryList<T extends Brewery> extends Vector<T> {
    public BreweryList(Class<T> c, Object[] j) {
        super();
        for (int i = 0; i < j.length; i++) {
            T item = c.newInstance();

            // breweryMethod() is an instance method
            // of Brewery, of which <T> is a subclass (right?)

            c.breweryMethod();

            // "The method breweryMethod() is undefined
            // for the type <T>" …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
9615
查看次数

标签 统计

java ×1