Java通用类
时间:2020-01-09 14:19:58 来源:igfitidea点击:
可以泛化自己的Java类。泛型不限于Java API中的预定义类。这是一个简单的示例:
public class GenericFactory<T> { Class theClass = null; public GenericFactory(Class theClass) { this.theClass = theClass; } public T createInstance() throws IllegalAccessException, InstantiationException { return (T) this.theClass.newInstance(); } }
" <T>"是一个类型标记,表示在实例化此类时可以设置类型。下面是一个示例:
GenericFactory<MyClass> factory = new GenericFactory<MyClass>(MyClass.class); MyClass myClassInstance = factory.createInstance();
注意,没有必要强制转换从factory.createInstance()方法返回的对象。编译器可以从创建的GenericFactory
的通用类型中减去对象的类型,因为我们在<>内指定了类型。
每个GenericFactory实例可以被泛化为不同的类型。这是两个示例:
GenericFactory<MyClass> factory = new GenericFactory<MyClass>(MyClass.class); MyClass myClassInstance = factory.createInstance(); GenericFactory<SomeObject> factory = new GenericFactory<SomeObject>(SomeObject.class); SomeObject someObjectInstance = factory.createInstance();