所以我当前的代码如下所示。这个想法是使用通用类型T接收不同类的实例,然后返回这些实例。
我应该能够调用此类的实例
new A().add(new B())
public static <T> T <T> add(T t) {
return new T();
}
对我来说,返回类型应该是类本身,以便它可以通过返回类型获取新实例。
有人可以指导我我的逻辑哪里出问题了吗?
答案 0 :(得分:1)
您不能仅从泛型类型调用构造函数,因为1.类型擦除意味着Carbon::parse($time)->startOfMinute()->toDateTimeString()
在运行时变成T
(或任何上限),而2.您没有不知道构造函数必须接受0个参数。
一种更好的方法是使用Supplier
Object
,您可以使用这种方法。使用方法引用,它非常简洁。
public static <T> T add(Supplier<T> supplier) {
return supplier.get();
}