java - 创建给定 Class 类型的实例
问题描述
我有一些子类,它们都由一个共同的父类扩展。
我想要的是父类中的一个具体方法,并且该方法应该返回给定类类型的新对象。
这是我尝试过的。
class Vehicle {
public <T> T get(Class<T> type){
//return new T();
}
}
class Car extends Vehicle {
}
class Van extends Vehicle {
}
以上get(...)
方法
return new T();
语句给出一个编译错误说,
需要意外的类型
:
找到的类:类型参数 T
我不能直接创建子类的对象,例如,
new Car();
由于某些原因。可以有任意数量的子类,因此get()
在每个子类中覆盖方法也不是一种选择。任何的想法?
解决方案
您可以Class
使用Class.newInstance()
.
public <T> T get(Class<T> type) throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
但是该类必须有一个无参数的构造函数;它可能会引发异常。
推荐阅读
- java - 在Java中创建路径的速记?
- excel - 宏来改变word中图像和内联形状的样式?
- oracle - 使用 Cursor 写入 CSV 并插入表格
- java - 在spring调度程序中使用属性文件中的cron值
- python - 在 Python 中使用 re 查找多个匹配项(初学者问题)
- arduino - Arduino AccelStepper 库不反转方向
- javascript - 如何搜索具有相应文本的特定字符串值
- r - 如何为 lm (ggplot2) 中的 stat_smooth 创建置信区间和最佳拟合线的图例
- apache-spark - 通过 nltk 使用 Spark 进行文本挖掘
- node.js - 创建 KafkaJS 中已经存在的主题是否可以?